Sending a transaction, and knowing it worked
The full lifecycle with real timings, measured by paying out this academy's own lesson rewards.
Sending is two RPC calls and a wait:
tx.sendRawTransaction { "rawTx": "0x…" } → a transaction hash
tx.getStatus { "txHash": "0x…" } → where it has got to
Note the parameter names: rawTx and txHash. Not raw, not hash. And the decoder is tx.decodeRawTransaction, not tx.decodeRaw.
From the CLI, which handles signing for you:
animica tx send --from anim1… --to anim1… --value 10
Real measurements, taken by paying out this academy's own lesson rewards on 2026-08-20 — two 10 ANM transactions from the treasury:
| Stage | Measured |
|---|---|
| sign + submit (ML-DSA-65) | ~8 seconds |
pending → confirmed | ~60-90 seconds |
| block interval | ~121 seconds average |
| fee | 21,000 nANM (0.000021 ANM) |
Transaction 0xfe8c0cd8… landed in block 78,792 and 0xb569a271… in block 78,794. The recipients went from a zero balance to exactly 10.000000000 ANM.
Design for those numbers. Anything that polls for confirmation with a 30-second timeout will report failure on transactions that are perfectly fine — a mistake that has already cost this codebase a false FAILED on a real settlement.
Confirmed is not final. tx.getStatus returns a rich picture, and the fields mean different things:
"status": "confirmed", "state": "included_block", "included_height": 78792, "confirmations": 1, "finalized": false, "reorged_out": false
confirmations: 1 means it is in the chain tip's block — which can still be reorganised away. For anything you cannot undo, wait for more confirmations, or for finalized.
And there is no nonce. Animica transactions carry a salt plus a validity window (validAfter/validUntil, default TTL 120 blocks ≈ 4 hours). A transaction that misses its window is not delayed — it is dead, and must be re-signed. Do not build a queue that assumes a stale transaction will eventually land.
And the rule the deployment track already gave you, which applies to every transaction, not just deployments: inclusion is not execution. A transaction can sit in a block, fully confirmed, having reverted. Read the receipt status. "It is on-chain" answers a different question from "it worked".
Claim your 10 ANM
Finish this lesson and claim 10 ANM, once per address. Paid from the Animica treasury in batches — allow a few minutes.
Stuck? Ask
Answered by Animica's own free inference network. It is donated GPU capacity, so give it 20-30 seconds.