Skip to content

Generated schema for tokenization/collections.proto: 11 messages in the x/tokenization module.

Proto package tokenization, part of the x/tokenization module. It declares 11 messages. Read the raw source.

Messages

AliasPath

Field#TypeRuleDescription
denom1stringsingularThe denomination (denom) to be used for the alias.
conversion2ConversionWithoutDenomsingularThe conversion between cosmos coin and token balances.
symbol3stringsingularThe symbol for the alias (e.g., "BADGE", "NFT"). Used for display purposes. Note that this may not be the default.
denomUnits4DenomUnitrepeatedDenomination units for the alias. Defines how the coin can be displayed with different decimal places and symbols.
metadata5PathMetadatasingularThe metadata for this alias path.

CollectionInvariants

CollectionInvariants defines the invariants that apply to a collection.

Field#TypeRuleDescription
noCustomOwnershipTimes1boolsingularIf true, all ownership times must be full ranges [{ start: 1, end: GoMaxUInt64 }]. This prevents time-based restrictions on token ownership.
maxSupplyPerId2stringsingularMaximum supply per token ID. Checked against Total address balances after transfers complete. A value of 0 means no limit (unlimited).
cosmosCoinBackedPath3CosmosCoinBackedPathsingularThe IBC backed (sdk.coin) path for the collection. Only one path is allowed.
noForcefulPostMintTransfers4boolsingularIf true, disallows any collection approvals that have overridesFromOutgoingApprovals or overridesToIncomingApprovals set to true. This prevents forceful transfers that bypass user-level approvals. This only applies to transfers where the from address does not equal "Mint".
disablePoolCreation5boolsingularIf true, disallows pool creation with this collection's assets. When true, any attempt to create a pool with tokenization assets from this collection will fail.
evmQueryChallenges6EVMQueryChallengerepeatedEVM query invariants that must pass after all transfers complete. These are checked once per message after all balance updates, with access to ALL recipient addresses. Placeholders: $sender, $recipients (comma-separated), $initiator, $collectionId, $recipient

CollectionStats

CollectionStats tracks aggregated statistics for a collection.

Field#TypeRuleDescription
holderCount1stringsingular
balances2BalancerepeatedTracks circulating supply as Balance[] for proper range handling

Conversion

Conversion defines a bidirectional conversion between a cosmos coin (with denom) and token balances.

Field#TypeRuleDescription
sideA1ConversionSideAWithDenomsingularSide A: The cosmos coin side of the conversion (amount + denom).
sideB2BalancerepeatedSide B: The token balances side of the conversion.

ConversionSideA

ConversionSideA represents the cosmos coin amount side of a conversion without denomination.

Field#TypeRuleDescription
amount1stringsingularThe amount of the cosmos coin (0 decimals).

ConversionSideAWithDenom

ConversionSideAWithDenom represents the cosmos coin side of a conversion with denomination.

Field#TypeRuleDescription
amount1stringsingularThe amount of the cosmos coin (0 decimals).
denom2stringsingularThe denomination of the cosmos coin.

ConversionWithoutDenom

ConversionWithoutDenom defines a bidirectional conversion between a cosmos coin amount (without denom) and token balances.

The denom is stored at the base level (e.g., in AliasPath or CosmosCoinWrapperPath).

Field#TypeRuleDescription
sideA1ConversionSideAsingularSide A: The cosmos coin amount side of the conversion (amount only, denom stored separately).
sideB2BalancerepeatedSide B: The token balances side of the conversion.

CosmosCoinBackedPath

Field#TypeRuleDescription
address1stringsingularThe address associated with this backed path. Used for routing and escrowing IBC tokens.
conversion2ConversionsingularThe conversion between IBC cosmos coin and token balances.

CosmosCoinWrapperPath

Field#TypeRuleDescription
address1stringsingularThe BitBadges address associated with this wrapper path. Used for routing and identifying the wrapper.
denom2stringsingularThe denomination (denom) to be used for the wrapped coin or the alias denom.
conversion3ConversionWithoutDenomsingularThe conversion between cosmos coin and token balances.
symbol4stringsingularThe symbol for the wrapped coin (e.g., "BADGE", "NFT"). Used for display purposes. Note that this may not be the default.
denomUnits5DenomUnitrepeatedDenomination units for the wrapped coin. Defines how the coin can be displayed with different decimal places and symbols (e.g., base unit, display unit). You can specify which is the default display unit (base level or one of these).
allowOverrideWithAnyValidToken6boolsingularIf true, allows this wrapper path to be used with any valid token ID in the collection via an {id} placeholder.
metadata7PathMetadatasingularThe metadata for this wrapper path.

DenomUnit

Field#TypeRuleDescription
decimals1stringsingularThe number of decimal places for this unit. Defines the precision of the unit.
symbol2stringsingularThe symbol for this unit (e.g., "BADGE", "nBADGE"). Used for display purposes.
isDefaultDisplay3boolsingularIf true, this is the default display unit. Only one unit should be marked as the default display unit. This unit will be used by default when displaying the coin amount. If none are marked default, we use the base level.
metadata4PathMetadatasingularThe metadata for this denomination unit.

TokenCollection

A TokenCollection is the top-level object for a collection of tokens. It defines everything about the collection, such as the manager, metadata, etc.

All collections are identified by a collectionId assigned by the blockchain, which is a uint64 that increments (i.e. the first collection has ID 1).

All collections can have a manager who is responsible for managing the collection and can be granted certain admin permissions, such as the ability to mint new tokens.

Collections may have different balance types: standard vs. off-chain - indexed vs. inherited.vs off-chain - non-indexed vs non-public.

See documentation for more details.

Field#TypeRuleDescription
collectionId1stringsingularThe unique identifier for this collection. This is assigned by the blockchain. First collection has ID 1.
collectionMetadata2CollectionMetadatasingularThe metadata for the collection itself.
tokenMetadata3TokenMetadatarepeatedThe metadata for each token in the collection.
customData4stringsingularAn arbitrary field that can store any data.
manager5stringsingularThe address of the manager of this collection.
collectionPermissions6CollectionPermissionssingularPermissions that define what the manager of the collection can do or not do.
collectionApprovals7CollectionApprovalrepeatedTransferability of the collection for collections with standard balances, subject to changes over time. Overrides user approvals for a transfer if specified. Transfer must satisfy both user and collection-level approvals. Only applicable to on-chain balances.
standards8stringrepeatedStandards that define how to interpret the fields of the collection.
isArchived9boolsingularWhether the collection is archived or not. When archived, it becomes read-only, and no transactions can be processed until it is unarchived.
defaultBalances10UserBalanceStoresingularThe default store of a balance / approvals for a user, upon genesis.
createdBy11stringsingularThe user or entity who created the collection.
validTokenIds12UintRangerepeatedThe valid token IDs for this collection.
mintEscrowAddress13stringsingularThe generated address of the collection. Also used to escrow Mint balances.
cosmosCoinWrapperPaths14CosmosCoinWrapperPathrepeatedThe IBC wrapper (sdk.coin) paths for the collection.
invariants15CollectionInvariantssingularCollection-level invariants that cannot be broken. These are set upon genesis and cannot be modified.
aliasPaths16AliasPathrepeatedThe alias (non-wrapping) paths for the collection.

Edit this page on GitHub