Animica Pay docs 2.00% per successful payment

Build

Going live

The switch to live keys, the operational duties, and the failure modes to design for.

Live mode moves real money on a chain with real reorgs. This page is the checklist.

Before you switch keys #

  1. Verify your payout address. bech32m, anim1 prefix, 34-byte payload, ML-DSA-65 (0x1003). A 0x1002 SPHINCS+ address is rejected — those addresses exist on this chain but cannot spend, so accepting one would send your revenue somewhere unusable. Prove you control it by receiving a small test payment before you rely on it.
  2. Pick a confirmation depth. Default 12. Lower is faster and riskier. For instantly-delivered digital goods, consider higher.
  3. Register a production webhook endpoint over https and store its secret where your app secrets live — not in your repository.
  4. Decide your settlement mode with The splitting limitation open in front of you: merchant-direct plus a signed sweep (non-custodial, default) or forwarding (hands-off, custodial for seconds).
  5. Rotate anything that leaked. If a secret key has ever been in a browser bundle, a mobile binary, a screenshot, a support ticket or a public repository, rotate it now. Rotation revokes the old key immediately with no grace window, because a grace window is exactly the window an exfiltrated key needs.

Operational duties that do not go away #

DutyWhy
Sweep the protocol feeIn merchant-direct mode you receive the gross and owe 2%. protocol_fee_owed is exact.
Reconcile regularlyCompare your orders against settled intents. The reconciler flags anything booked without on-chain support.
Watch reorged paymentsA PAID intent can return to AWAITING_PAYMENT. Have a human path for that.
Keep the webhook endpoint aliveFive consecutive failed deliveries disables it, and re-enabling is manual.
Handle UNDERPAID and OVERPAIDThey never auto-settle. Someone has to decide.

Failure modes to design for #

Do not do these #