Skip to content

ABIs

An ABI (Application Binary Interface) is the JSON description of a contract: its action names and parameter types, its table structures, and its custom types. It's how tools and clients serialize a human-readable action into the bytes the chain executes — and deserialize state back.

What it's for

  • Clients (pulse-cli, pulsevm-js) read the ABI to turn transfer {...} into a signed transaction.
  • Explorers & indexers read it to render actions and tables in human-readable form.
  • Type safety — the ABI is the contract between off-chain callers and on-chain code.

How you get one

The CDTs generate the ABI alongside the WASM at build time. You deploy both: setcode (the WASM) and setabi (the ABI). See the Rust and C++ quickstarts.

Fetch a deployed contract's ABI via the RPC: pulsevm.getABI (or the REST /v1/chain/get_abi).