メインコンテンツまでスキップ

Implementation Checklist

Build Checklist

Use this before wiring a new seed module, birth hook, game, route, or partner integration into a soToken collection.

All integrations must preserve the core soToken invariant: active object support is bounded by the configured interval of token balance and the launch’s LOA/BOA policy.

Seed module checklist

  • Implements the expected seed module interface for the target soToken.
  • Returns a nonzero seed when possible.
  • Returns a stable birthPath label that indexers can group.
  • Uses context as typed data, not ambiguous string parsing.
  • Treats the caller as the ledger, not the end user.
  • Does not depend on off-chain servers for final seed truth.
  • Has tests for repeated claims, empty context, malformed context, and zero-seed fallback.

Birth hook checklist

  • Verifies the real recipient.
  • Verifies the external action or game condition.
  • Calls claimFor(owner, amount, context) on the intended ledger.
  • Does not expose arbitrary public minting.
  • Does not claim more than the verified action allows.
  • Emits source events with enough data for the app to explain the birth.
  • Has an admin or creator-controlled revoke path.
  • Handles replay protection if signatures or off-chain attestations are used.

App and docs checklist

  • Show the interval, maximum object supply, renderer, and seed module.
  • Label creator-provided hooks that Mirage has not reviewed.
  • Do not call claims "mints". Users are claiming a balance-backed object.
  • Do not describe soToken objects as standard ERC-721 NFTs.

Test checklist

  • Under-supported wallets cannot claim.
  • Creator-approved hook can claim for a supported wallet.
  • Unapproved hook cannot call claimFor.
  • Revoked hook stops future hook claims.
  • Hook claims and direct claims produce consistent birth records.
  • Native object transfers move the supporting token interval with the object when object transfers are enabled.