Coin Transfers

Automatic token transfers to be executed on every approval use. These are triggered every time this approval is used. This is useful for payments, payouts, swaps, and more.

Couple notes:

  • This forfeits auto-scan mode for the approval

  • Subject to allowed denominations set by the module parameters

  • Can be used with x/bank denominations or BitBadges alias denominations

Interface

interface iCoinTransfer<T extends NumberType> {
    to: string; // Recipient BitBadges address
    coins: iCosmosCoin<T>[];

    overrideFromWithApproverAddress: boolean; // By default (false), this is the initiator address. In the case of a collection approval, approver address is the mint escrow address.
    overrideToWithInitiator: boolean; // By default (false), this is the to address specified
}

interface iCosmosCoin<T extends NumberType> {
    amount: T;
    denom: string; // Any Cosmos SDK denomination (e.g., "ubadge", "uatom", "uosmo")
}

Mint Escrow Address

The Mint Escrow Address (mintEscrowAddress) is a special reserved address generated from the collection ID that holds Cosmos native funds on behalf of the "Mint" address for a specific collection. This address has no known private key and is not controlled by anyone. The only way to get funds out is via collection approvals from the Mint address.

For collection approvals with overrideFromWithApproverAddress: true, the approver address is this special mint escrow address.

Generation

Properties

  • Longer than normal addresses

  • No private key (cannot be controlled by users)

  • Can receive Cosmos-native tokens

  • Only collection approvals can trigger transfers from it

  • Holds Cosmos native tokens (like "ubadge" tokens) associated with the Mint address for a specific collection

Auto-Escrow During Collection Creation

The MsgCreateCollection interface includes a mintEscrowCoinsToTransfer field of type repeated cosmos.base.v1beta1.Coin that allows you to automatically escrow native coins to the Mint Escrow Address during collection creation.

Benefits:

  • Unknown collection ID - Escrow coins before knowing the final collection ID

  • Automatic transfer - Coins are automatically transferred to the generated Mint Escrow Address

  • Collection initialization - Funds are available immediately when the collection is created

  • Single transaction - Combine collection creation and coin escrow in one operation

Usage:

This field is particularly useful when you need to fund the Mint Escrow Address but don't know the collection ID beforehand, since the escrow address is derived from the collection ID itself. Thus, it can be done all in one transaction.

Example

Last updated