Skip to main content
Every sandbox operation that touches the chain (faucet funding, mints, transfers, redemptions) writes a transaction row before submission and updates it as the chain confirms. Transactions are your audit trail and your polling target.

The transaction object

Lifecycle

  • Most types go PENDING → CONFIRMED (terminal) or → FAILED.
  • Redeems have a second leg: PENDING → SETTLING → SETTLED, with the payout hash in settlementTxHash. See Redeem cAROUSD.

Synchronous-ish writes

Money-movement calls (/fund, /mint, /transfer, /redeem) block for up to ~90 seconds waiting for the on-chain receipt. If the receipt arrives in time you get back a CONFIRMED (or SETTLING) transaction; otherwise the call returns the transaction still PENDING, not an error.

Lazy reconciliation

There is no background cron. Transactions still in flight are reconciled whenever they are read: fetching a PENDING transaction triggers a receipt lookup, and reading a SETTLING redeem advances settlement if it can. The practical rule:
Poll GET /transactions/{id} until the status is terminal (CONFIRMED, SETTLED, or FAILED). Polling is not just how you observe progress; it’s what drives it forward.

Listing and filtering

GET /transactions returns a paginated, filterable history:
Responses carry items, page, pageSize (default 20, max 100), and total. See Track transactions for patterns.

Receipts

Once a transaction has reached the chain, GET /transactions/{id}/nota produces a notarized Notareum receipt file; see .nota files. Requesting a receipt for a transaction that can’t yet be represented (for example, one that never got a hash) returns 400.