Start here
Animica Pay documentation
What Animica Pay is, what it costs, and the two limitations to read before integrating.
Animica Pay lets a merchant accept ANM — the native coin of the Animica chain — and receive it directly at their own address. No custody, no chargebacks, no monthly fee.
If you have ten minutes, start with the Quickstart. If you are evaluating, read The 2% fee and The splitting limitation first: they are the two things most likely to change your mind, so they are on the front page rather than in an appendix.
What it costs #
Animica Pay charges 2.00% of every successful payment. 98% of the gross is yours, 2% goes to the Animica treasury. Full worked numbers are on The 2% fee.
Two things that are unusual, stated up front #
How a payment flows #
- Your server creates a PaymentIntent with a secret API key.
- You redirect the customer to the hosted checkout, or open it in the widget modal.
- The customer sends one ANM
TRANSFERto the payment address with an ANMPAY1 reference indata. - Our indexer matches that transfer by reference plus recipient — never by amount — and counts confirmations against the canonical chain height.
- At 12 confirmations with a successful receipt, the intent becomes PAID, the 98%/2% split is booked in a double-entry ledger, and you get a signed webhook.
- Your webhook handler marks the order paid. It must be idempotent, because retries are normal.
The pages #
| Page | What it covers |
|---|---|
| Quickstart | Accept your first ANM payment in about ten minutes. |
| Core concepts | The 11-state lifecycle, the ANMPAY1 reference, confirmations and reorgs. |
| The 2% fee | The protocol fee, the rounding rule, and a worked example in exact numbers. |
| The splitting limitation | Why there is no atomic 98/2 transaction on this chain, and what we do instead. |
| Refunds | A refund is a new transaction, not a reversal — and what follows from that. |
| API reference | Every endpoint, its parameters, examples and errors — labelled live or planned. |
| Webhooks | Event types, the signature scheme, verification in Node and PHP, replay window and retries. |
| Testing and test mode | What test mode guarantees, what you can exercise offline, and a pre-launch checklist. |
| Going live | The switch to live keys, the operational duties, and the failure modes to design for. |
| WooCommerce plugin | Install, settings, what the plugin does, refunds and troubleshooting. |
| Security | What we never store, why keys are hashed, and what must never reach browser code. |
Conventions used throughout #
- Money is an integer. All amounts on the wire are decimal strings counting nANM, where 1 ANM = 1,000,000,000 nANM. Never parse them as JSON numbers; 41825250000000 does not survive a double.
- Fiat is integer cents. A USD price is converted to an exact nANM amount at a locked rate. If no fresh rate exists, USD checkout is unavailable rather than mispriced.
- Addresses are bech32m with the
anim1prefix, and only ML-DSA-65 (0x1003) addresses are accepted for payouts.0x1002SPHINCS+ addresses exist on this chain but cannot spend, so we refuse them at onboarding.