Badge Collections

A badge collection is the primary entity that defines a group of related badges with shared properties and rules. We refer you to other pages for more details on the different concepts that make up a collection.

Proto Definition

message BadgeCollection {
  // The unique identifier for this collection. This is assigned by the blockchain. First collection has ID 1.
  string collectionId = 1 [(gogoproto.customtype) = "Uint", (gogoproto.nullable) = false];

  // The metadata for the collection itself, which can vary over time.
  repeated CollectionMetadataTimeline collectionMetadataTimeline = 2;

  // The metadata for each badge in the collection, also subject to changes over time.
  repeated BadgeMetadataTimeline badgeMetadataTimeline = 3;

  // The type of balances this collection uses ("Standard", "Off-Chain - Indexed", "Off-Chain - Non-Indexed", or "Non-Public").
  string balancesType = 4;

  // Metadata for fetching balances for collections with off-chain balances, subject to changes over time.
  repeated OffChainBalancesMetadataTimeline offChainBalancesMetadataTimeline = 5;

  // An arbitrary field that can store any data, subject to changes over time.
  repeated CustomDataTimeline customDataTimeline = 7;

  // The address of the manager of this collection, subject to changes over time.
  repeated ManagerTimeline managerTimeline = 8;

  // Permissions that define what the manager of the collection can do or not do.
  CollectionPermissions collectionPermissions = 9;

  // Transferability 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.
  repeated CollectionApproval collectionApprovals = 10;

  // Standards that define how to interpret the fields of the collection, subject to changes over time.
  repeated StandardsTimeline standardsTimeline = 11;

  // Whether the collection is archived or not, subject to changes over time.
  // When archived, it becomes read-only, and no transactions can be processed until it is unarchived.
  repeated IsArchivedTimeline isArchivedTimeline = 12;

  // The default store of a balance for a user, upon genesis.
  UserBalanceStore defaultBalances = 13;

  // The user or entity who created the badge collection.
  string createdBy = 14;

  // The valid badge IDs for this collection.
  repeated UintRange validBadgeIds = 15;

  // The generated address of the badge collection. Also used to escrow Mint balances.
  string mintEscrowAddress = 16;

  // The IBC wrapper (sdk.coin) paths for the collection.
  repeated CosmosCoinWrapperPath cosmosCoinWrapperPaths = 17;
}

Last updated