Approval Criteria
Interface
export interface iApprovalCriteria<T extends NumberType> {
/** The BADGE or other sdk.Coin transfers to be executed upon every approval. */
coinTransfers?: iCoinTransfer<T>[];
/** The list of merkle challenges that need valid proofs to be approved. */
merkleChallenges?: iMerkleChallenge<T>[];
/** The list of must own tokens that need valid proofs to be approved. */
mustOwnTokens?: iMustOwnToken<T>[];
/** The predetermined balances for each transfer. These allow approvals to use predetermined balance amounts rather than an incrementing tally system. */
predeterminedBalances?: iPredeterminedBalances<T>;
/** The maximum approved amounts for this approval. */
approvalAmounts?: iApprovalAmounts<T>;
/** The max num transfers for this approval. */
maxNumTransfers?: iMaxNumTransfers<T>;
/** Whether the approval should be deleted after one use. */
autoDeletionOptions?: iAutoDeletionOptions;
/** Whether the to address must equal the initiatedBy address. */
requireToEqualsInitiatedBy?: boolean;
/** Whether the from address must equal the initiatedBy address. */
requireFromEqualsInitiatedBy?: boolean;
/** Whether the to address must not equal the initiatedBy address. */
requireToDoesNotEqualInitiatedBy?: boolean;
/** Whether the from address must not equal the initiatedBy address. */
requireFromDoesNotEqualInitiatedBy?: boolean;
/** Whether this approval overrides the from address's approved outgoing transfers. */
overridesFromOutgoingApprovals?: boolean;
/** Whether this approval overrides the to address's approved incoming transfers. */
overridesToIncomingApprovals?: boolean;
/** The royalties to apply to the transfer. */
userRoyalties?: iUserRoyalties<T>;
/** The list of dynamic store challenges that must pass for approval. Can check initiator, sender, recipient, or a hardcoded address. */
dynamicStoreChallenges?: iDynamicStoreChallenge<T>[];
/** The list of ETH signature challenges that require valid Ethereum signatures for approval. */
ethSignatureChallenges?: iETHSignatureChallenge<T>[];
/** The list of voting challenges that require weighted quorum thresholds to be met. */
votingChallenges?: iVotingChallenge<T>[];
/** Address checks for sender */
senderChecks?: iAddressChecks;
/** Address checks for recipient */
recipientChecks?: iAddressChecks;
/** Address checks for initiator */
initiatorChecks?: iAddressChecks;
/** Alternative time-based checks for approval denial (offline hours/days). */
altTimeChecks?: iAltTimeChecks;
/** Whether this approval must be prioritized during evaluation. */
mustPrioritize?: boolean;
/** Whether this approval can be used for IBC backed path operations (collection-level only). */
allowBackedMinting?: boolean;
/** Whether this approval can be used for cosmos coin wrapper path operations (collection-level only). */
allowSpecialWrapping?: boolean;
}Core Components
Key Concepts
Tracker IDs
Best Practices - Creating / Updating / Deleting
Last updated