XODIAK / Developers / API reference
API reference
Plain HTTP, JSON in and out. Read endpoints are unauthenticated; write endpoints require a signed payload.
Read
| Endpoint | Returns |
|---|---|
GET /chain/status | Chain id, height, latest block hash, supply, validator counts, crypto stack, peer count and protocol config. |
GET /blocks | Paginated block list. Takes limit and offset. |
GET /block/{height|hash} | A single block with its encoded object, signature and transactions. |
GET /transactions | Transactions currently in the mempool. |
GET /tx/{hash} | A single transaction with its legs, signature and committed height. |
GET /accounts | Accounts ordered by balance. Takes limit. |
GET /account/{address} | Balance, stake and nonce for one address. |
GET /validators | All validators with stake, status, attested reserve and blocks produced. |
GET /peers | Connected peers on the P2P transport. |
GET /proposals | Governance proposals. Takes status. |
GET /proposal/{id} | One proposal with its votes and tally. |
GET /oracle/price | Latest oracle price. Takes symbol. |
GET /oracle/history | Price history. Takes symbol and limit. |
GET /compliance/{userId} | Verification tier and permission flags for an identity. |
Write
| Endpoint | Does |
|---|---|
POST /account/create | Generates an ML-DSA-65 keypair and derives an xdk1 address. |
POST /tx/submit | Submits a signed transaction to the mempool. Verifies signature, balance and nonce before admitting it. |
POST /validator/register | Registers a validator. Requires a minimum stake of 10,000 XDK and a vault attestation to become eligible. |
POST /faucet | Development and test networks only. Not available on a production chain. |
The transaction path.
Worth understanding before you integrate, because it explains why signatures are over the hash of the encoded object rather than over the JSON you sent.
- Plaintext fields are encoded under QBC-G1 into a geometric object
- SHA-256 of that object is the transaction hash
- ML-DSA-65 signs the hash
- Mempool verifies signature, balance and nonce
- The block producer drains the mempool and executes state transitions
- Consensus commits, and the bridge mirrors the block to Postgres
{
"chainId": "xodiak-1",
"height": 887992,
"totalSupply": "1000000000000000",
"config": {
"blockTimeMs": 5000,
"minStakeAmount": "10000000000",
"blockReward": "2000000"
},
"crypto": {
"signatures": "ML-DSA-65",
"keyExchange": "ML-KEM-768",
"consensus": "Proof-of-Anchor"
}
}
Ready to get started?
Create an account instantly, or talk to us about a settlement design for your business.
See what you'll pay
Per-settlement pricing tied to what actually moves. No seat licences, no hidden spread.
Pricing detailsStart building
Open an account, sign a transaction, read a block. About ten minutes end to end.
Integration options