Amadeus Blockchain API
The HTTP API exposes everything a client needs to read and write the Amadeus L1: query chain state and balances, submit signed transactions, fetch cryptographic proofs, execute read-only contract calls, and subscribe to realtime events over WebSocket.
Base URLs
| Environment | URL |
|---|---|
| Mainnet | https://mainnet-rpc.ama.one |
| Testnet | https://testnet-rpc.ama.one |
Every endpoint on this site has a server selector in the Try-It panel — switch between Mainnet and Testnet without leaving the page.
Authentication
The HTTP API is public and unauthenticated — no API keys, headers, or rate-limit tokens are required to read chain state. Writes (/api/tx/submit*, contract POSTs) are authorized by the BLS12-381 signature on the transaction itself, not by an HTTP header.
Response envelope
Most JSON responses include a top-level error field:
{
"error": "ok",
"stats": { /* ... */ }
}
"error": "ok"— request succeeded; the payload is in a sibling field (stats,entry,txs,balance, etc.)."error": "not_found","error": "invalid_signature", … — request failed; the sibling payload may be absent.
A small number of endpoints (/api/contract/get_prefix, /api/proof/contractstate) return application/octet-stream (vecpak-encoded) rather than JSON. These are flagged on the relevant pages.
Identifier conventions
| Field | Format |
|---|---|
| Public key | Base58, 48 bytes (BLS12-381) |
| Hash | Base58, 32 bytes |
| Signature | Base58, 96 bytes |
flat amount | Integer, smallest unit (1 AMA = 10⁹ flat) |
float amount | Floating-point AMA for display |
Most endpoints accept the Base58 form in the URL path. Where binary input is required (transaction submission, vecpak bodies), the request uses Content-Type: application/octet-stream.
WebSocket
For realtime streams (new entries, tx events, validator changes), upgrade an HTTP connection to a WebSocket at wss://mainnet-rpc.ama.one/ws/rpc. See WebSocket RPC endpoint for the protocol; an interactive test page lives at /ws/rpc/test.
SDKs
Rather than calling the HTTP API directly, most integrators use the official SDK, which handles tx packing, signing, and retries: see the SDK section. The HTTP reference here is the source of truth — the SDK wraps it.