Independent developer reference: code samples describe implementation patterns and are not live hosted endpoints.
Platform architecture

Token Minting API

A reference design for turning authorized issuance intent into an inspectable, retry-safe, confirmed blockchain operation.

Responsibility map

Keep protocol rules and API orchestration distinct.

The contract or program defines token behavior. The API controls request identity, policy, execution, evidence, and delivery.

On-chain layer

Supply rules, balances, ownership, authority checks, transfer behavior, events, and immutable invariants.

Mint API layer

Authentication, asset configuration, idempotency, policy, signing workflow, submission, status, and reconciliation.

Application layer

Customer entitlements, rewards, inventory, order state, user experience, support, and business reporting.

Operation lifecycle

Persist before signing. Verify after confirmation.

Each stage should leave enough durable evidence to resume after a crash and enough context to explain the result later.

01

Accept intent

Authenticate the caller, require an idempotency key, normalize the payload, and bind it to an approved asset configuration.

02

Apply policy

Check tenant access, recipient rules, amount and batch limits, metadata state, and business uniqueness before external side effects.

03

Create resource

Write the operation and idempotency mapping transactionally. A database uniqueness constraint resolves concurrent duplicates.

04

Construct and sign

Use reviewed ABIs or program instructions and ask a restricted signer to verify the decoded transaction against policy.

05

Submit and confirm

Retain transaction identity, distinguish rebroadcast from reconstruction, and define the network evidence behind each status.

06

Reconcile and deliver

Compare expected supply, balance, ownership, metadata, and events; then publish signed webhooks and a durable final representation.

Asynchronous resource model

Return an operation, not an optimistic promise.

A 202 response identifies accepted work. The operation can advance independently through signing, submission, confirmation, and reconciliation.

  • Immutable normalized request fields
  • Stable machine-readable status and failure codes
  • Transaction and block evidence when available
  • Chain-specific details under a namespaced object
  • Signed webhook events with delivery IDs
HTTP/1.1 202 Accepted
Location: /v1/mints/mnt_01J8D4W7Q2
Content-Type: application/json

{
  "id": "mnt_01J8D4W7Q2",
  "status": "accepted",
  "asset_id": "rewards-usd-v1",
  "network": "solana-devnet",
  "recipient": "7QhV...xP9",
  "amount_base_units": "125000000",
  "created_at": "2026-10-23T19:42:18Z",
  "links": {
    "self": "/v1/mints/mnt_01J8D4W7Q2"
  }
}
Reference response schema. Replace example values and apply your own authentication, authorization, and signing policy.

Chain adapters

Normalize intent without erasing protocol truth.

EVM adapter

Resolves chain ID, contract, ABI, function selector, integer amount, nonce, gas policy, transaction replacements, receipt events, and reorganization monitoring.

ERC-20 details →

Solana adapter

Resolves cluster, mint, Token Program, destination token account, fee payer, recent blockhash, commitment, and token balance changes.

SPL details →

NFT adapter

Coordinates collection, external asset uniqueness, metadata publication, token ID, owner, contract events, token URI, and indexing status.

NFT details →

Reliability contract

Make every failure class actionable.

ClassExampleClient action
Request errorinvalid_recipient, amount_out_of_rangeCorrect the request; no operation is created.
Policy denialasset_not_allowed, authority_deniedChange authorization or approved configuration; do not retry unchanged.
Transient infrastructurerpc_unavailable, queue_overloadedRetry using the same idempotency key or read the existing operation.
Chain execution failurecontract_reverted, blockhash_expiredInspect operation evidence; server policy decides whether safe reconstruction is possible.
Ambiguous outcomesubmission_unresolvedDo not remint. Wait for reconciliation or operator review.

FAQ

Architecture decisions.

Should a mint endpoint wait for blockchain finality?

Usually no. Create and return a durable operation, then expose status through polling and signed webhooks. A product may offer a synchronous convenience mode only when its timeout and confirmation meaning are explicit.

Where should mint authority policy live?

Critical supply invariants belong in the contract or program. The API and signer can enforce additional tenant, amount, recipient, and operational limits, but they should not replace on-chain guarantees.

How does a multi-chain API avoid a lowest-common-denominator design?

Normalize intent and lifecycle at the top level, then return chain-specific evidence and capability fields in namespaced objects. Do not hide account models, token programs, gas, commitment, or finality differences.

What is reconciliation?

Reconciliation compares the confirmed transaction with the expected state change, such as total supply and recipient balance for a fungible token or token ID and owner for an NFT.

Build from explicit contracts

Use the reference architecture as a starting point.

Define assets, authorities, idempotency, confirmation, and reconciliation before connecting a production signer.