Skip to content

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

MessageSignerWhat it does
MsgCreateCollectionanyoneCreate a collection. The only time defaultBalances and invariants can be set.
MsgUpdateCollectionmanagerUpdate collection fields with update flags. Permissions are checked.
MsgUniversalUpdateCollectionanyone (create) or manager (update)Legacy create-or-update interface. collectionId: "0" creates.
MsgDeleteCollectionmanagerDelete 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.

MessageSignerWhat it does
MsgSetValidTokenIdsmanagerSet validTokenIds and canUpdateValidTokenIds.
MsgSetManagermanagerSet manager and canUpdateManager.
MsgSetCollectionMetadatamanagerSet collectionMetadata and canUpdateCollectionMetadata.
MsgSetTokenMetadatamanagerSet tokenMetadata and canUpdateTokenMetadata.
MsgSetCustomDatamanagerSet customData and canUpdateCustomData.
MsgSetStandardsmanagerSet standards and canUpdateStandards.
MsgSetCollectionApprovalsmanagerSet collectionApprovals and canUpdateCollectionApprovals.
MsgSetIsArchivedmanagerSet isArchived and canArchiveCollection.

Transfers

MessageSignerWhat it does
MsgTransferTokensinitiatorMove tokens between addresses. Every transfer must match collection, outgoing, and incoming approvals.

User Approvals

MessageSignerWhat it does
MsgUpdateUserApprovalsthe userReplace outgoing or incoming approvals, auto-approve flags, and user permissions.
MsgSetIncomingApprovalthe userCreate or replace one incoming approval by ID.
MsgDeleteIncomingApprovalthe userDelete one incoming approval by ID.
MsgSetOutgoingApprovalthe userCreate or replace one outgoing approval by ID.
MsgDeleteOutgoingApprovalthe userDelete one outgoing approval by ID.
MsgPurgeApprovalsthe user or a counterpartyRemove expired user approvals, your own or someone else's when their auto-deletion options allow it.
MsgCastVotea listed voterCast or change a weighted vote on a voting challenge.

Address Lists

MessageSignerWhat it does
MsgCreateAddressListsanyoneCreate immutable, reusable address lists by ID.

Dynamic Stores

MessageSignerWhat it does
MsgCreateDynamicStoreanyoneCreate a boolean per-address store.
MsgUpdateDynamicStorestore creatorReplace the default value, kill switch, and metadata.
MsgDeleteDynamicStorestore creatorDelete a store.
MsgSetDynamicStoreValuestore creatorSet the boolean for one address.

Governance

MessageSignerWhat it does
MsgSetReservedProtocolAddressx/gov authorityMark or unmark an address as a reserved protocol address.
MsgUpdateParamsx/gov authorityReplace the module parameters.

Shared Response Types

Several responses share these types.

TypeFieldsReturned by
ApprovalChangeapprovalId, approvalLevel, action (created, edited, deleted), versioncollection and user approval updates
ApprovalUsedapprovalId, approvalLevel, approverAddress, versionMsgTransferTokens
CoinTransferProtofrom, to, amount, denom, isProtocolFeeMsgTransferTokens
reviewItemsstring[] of advisory notes about what the transaction didmost 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.

Edit this page on GitHub