Skip to main content
Last updated

Collection policy

The collection policy implements the kip.token-policy-v2 interface to simplify how you can organize tokens into collections. This part of the documentation describes the functions and capabilities defined in the collection policy contract.

Schemas and tables

The collection schema describes the following information for a token collection:

id:string name:string size:integer max-size:integer operator-guard:guard operator-account:string

This information is stored in the collection table.

The token schema describes the following information for a token in a collection:

id:string collection-id:string

This information is stored in the token table.


The collection policy smart contract defines the following capabilities to manage permissions:

  • GOVERNANCE: Restricts authority to the marmalade-admin keyset and ensures only authorized entities can upgrade the contract.
  • COLLECTION @event: Regulates collection creation and broadcasts of the COLLECTION event.
  • TOKEN-COLLECTION @event: Manages token addition to collections and announces such additions.


The dutch auction contract defines the following functions to manage token collections:

  • create-collection: Initiates a collection by defining its name, size, and overseeing entity.

  • enforce-init: Adds tokens to the collection while abiding by the collection's set size. It also determines the entity permitted to mint the token.

  • enforce-mint: Ascertain that the minting entity has appropriate permissions.

  • create-collection-id: Retrieves a collection identifier using the collection's name.

  • get-collection: Extracts collection details using a collection ID.

  • get-token: Gleans token details, focusing on its association with a collection, via the token ID.