ixo1155 smart contract — a CosmWasm implementation of the EIP-1155 multi-token standard. Each token domain has a token class (entity DID), a fixed cap, and supports both fungible and non-fungible balances within a single contract.
This guide shows the chain-level message patterns. For the data model and contract details, read the x/token proto definitions and the @ixo/impactxclient-sdk README.
Before you start
You need:- An IXO account with sufficient
uixofor fees on the network you target — see Networks and endpoints. - An offline signer — see the SDK README on creating signers.
- The token protocol entity DID (the value used as
class). Token class is validated against an existing entity. - For minting, a deployed token contract address (set via
MsgCreateToken). - For credit transfers, a valid
WithdrawPaymentAuthorizationif you act on behalf of another account — see Custom authorisations for IXO Claims.
Create a token
MsgCreateToken registers a new token name under a token-protocol entity. Cap "0" means unlimited supply.
Mint tokens
MsgMintToken issues new units in batches against an existing token contract. Each batch references a unique index and a collection DID.
Transfer tokens
MsgTransferToken moves balances between accounts. All tokens in a single message must belong to the same contract.
Retire tokens
MsgRetireToken permanently removes tokens from circulation while preserving their on-chain history. Use this for end-claims such as voluntary carbon retirement.
jurisdiction field follows the format <country-code>[-<sub-national-code>[-<postal-code>]]. Only the country code is required.
Transfer credit (ITMO state change)
MsgTransferCredit flips tokens to a “transferred” state when units are moved off-protocol to a different registry — for example, Internationally Transferred Mitigation Outcomes (ITMOs) under Article 6.2 of the Paris Agreement. It accepts an optional authorization_id for delegated transfers.
Cancel, pause, or stop a token
| Operation | Message | Effect |
|---|---|---|
| Cancel batches | MsgCancelToken | Owner cancels specific token batches with a reason. |
| Pause minting | MsgPauseToken | Minter halts further minting on a contract. paused: true to halt, false to resume. |
| Stop the contract | MsgStopToken | Minter permanently stops the token contract. Irreversible. |
Verify the result
Query token state through the Blocksync GraphQL API:Troubleshooting
invalid class DID
invalid class DID
class must be a valid entity DID for an existing token-protocol entity. Confirm the entity exists and that you control it.cap exceeded
cap exceeded
MsgMintToken will fail if the new total would exceed the token cap. Either raise the cap by recreating the token or split issuance across additional token names.contract paused or stopped
contract paused or stopped
Minting is rejected on paused contracts and on stopped contracts. Issue
MsgPauseToken with paused: false to resume; MsgStopToken cannot be reversed.unauthorized credit transfer
unauthorized credit transfer
Next steps
IXO MultiClient SDK
Full SDK reference including signing client setup.
Token proto definitions
Source of truth for token messages.
Bonds module
Add bonding-curve pricing and reserves to tokens.
Custom authorisations
Delegate token operations safely.