Messages
Every x/tokenization message, who signs it, and what it does. One page per message.
The x/tokenization module accepts 27 messages. Most are signed by the collection manager or by the user whose approvals change. Two are governance only.
Every message page follows the same shape: one working example in the bb CLI, the TypeScript SDK, and raw JSON, then the field table from the proto, then behavior (validation, permissions, side effects, errors).
Collection Lifecycle
| Message | Signer | What it does |
|---|---|---|
| MsgCreateCollection | anyone | Create a collection. The only time defaultBalances and invariants can be set. |
| MsgUpdateCollection | manager | Update collection fields with update flags. Permissions are checked. |
| MsgUniversalUpdateCollection | anyone (create) or manager (update) | Legacy create-or-update interface. collectionId: "0" creates. |
| MsgDeleteCollection | manager | Delete a collection and purge its state. Needs canDeleteCollection. |
Single-Field Collection Updates
Each of these sets one field plus the permission that guards it. They wrap MsgUniversalUpdateCollection.
| Message | Signer | What it does |
|---|---|---|
| MsgSetValidTokenIds | manager | Set validTokenIds and canUpdateValidTokenIds. |
| MsgSetManager | manager | Set manager and canUpdateManager. |
| MsgSetCollectionMetadata | manager | Set collectionMetadata and canUpdateCollectionMetadata. |
| MsgSetTokenMetadata | manager | Set tokenMetadata and canUpdateTokenMetadata. |
| MsgSetCustomData | manager | Set customData and canUpdateCustomData. |
| MsgSetStandards | manager | Set standards and canUpdateStandards. |
| MsgSetCollectionApprovals | manager | Set collectionApprovals and canUpdateCollectionApprovals. |
| MsgSetIsArchived | manager | Set isArchived and canArchiveCollection. |
Transfers
| Message | Signer | What it does |
|---|---|---|
| MsgTransferTokens | initiator | Move tokens between addresses. Every transfer must match collection, outgoing, and incoming approvals. |
User Approvals
| Message | Signer | What it does |
|---|---|---|
| MsgUpdateUserApprovals | the user | Replace outgoing or incoming approvals, auto-approve flags, and user permissions. |
| MsgSetIncomingApproval | the user | Create or replace one incoming approval by ID. |
| MsgDeleteIncomingApproval | the user | Delete one incoming approval by ID. |
| MsgSetOutgoingApproval | the user | Create or replace one outgoing approval by ID. |
| MsgDeleteOutgoingApproval | the user | Delete one outgoing approval by ID. |
| MsgPurgeApprovals | the user or a counterparty | Remove expired user approvals, your own or someone else's when their auto-deletion options allow it. |
| MsgCastVote | a listed voter | Cast or change a weighted vote on a voting challenge. |
Address Lists
| Message | Signer | What it does |
|---|---|---|
| MsgCreateAddressLists | anyone | Create immutable, reusable address lists by ID. |
Dynamic Stores
| Message | Signer | What it does |
|---|---|---|
| MsgCreateDynamicStore | anyone | Create a boolean per-address store. |
| MsgUpdateDynamicStore | store creator | Replace the default value, kill switch, and metadata. |
| MsgDeleteDynamicStore | store creator | Delete a store. |
| MsgSetDynamicStoreValue | store creator | Set the boolean for one address. |
Governance
| Message | Signer | What it does |
|---|---|---|
| MsgSetReservedProtocolAddress | x/gov authority | Mark or unmark an address as a reserved protocol address. |
| MsgUpdateParams | x/gov authority | Replace the module parameters. |
Shared Response Types
Several responses share these types.
| Type | Fields | Returned by |
|---|---|---|
ApprovalChange | approvalId, approvalLevel, action (created, edited, deleted), version | collection and user approval updates |
ApprovalUsed | approvalId, approvalLevel, approverAddress, version | MsgTransferTokens |
CoinTransferProto | from, to, amount, denom, isProtocolFee | MsgTransferTokens |
reviewItems | string[] of advisory notes about what the transaction did | most messages |
Collection ID 0
Messages that act on an existing collection (MsgTransferTokens, MsgUpdateUserApprovals, the single-approval helpers, MsgPurgeApprovals) accept collectionId: "0". The chain resolves it to the most recently created collection. Use this in a multi-message transaction that creates a collection and then acts on it.