Prerequisites
- A Qustody account at app.qustody.io
- An API key pair. Generate one from the dashboard or contact your tenant administrator
All examples target the production API at
https://api.qustody.io. To run against your own deployment, override BASE_URL/base_url — see Configure a development network.Step 1: Authenticate
Every request requires a Bearer token in the formatkey_id:secret.
Step 2: Create a tenant
A tenant is an isolated organizational unit. All vaults, wallets, and transactions belong to a tenant.Step 3: Create a vault account
A vault account groups related wallets together.Step 4: Register a wallet
Register an external Quantum Chain wallet address. The custody API does not generate keys. You provide the public key, address, and an ownership proof from your external signer. The ownership proof is a post-quantum signature over the deterministic challengeKeccak256("qustody:register:" + lowercase_address).
Step 5: Create a transaction
Submit a transfer. The transaction entersPENDING_SIGNATURE status and waits for your external signer.
Step 6: Sign the transaction
Retrieve the signing payload and submit the signature from your external signer.SIGNED → BROADCASTING → CONFIRMING → COMPLETED.
Step 7: Verify completion
Poll the transaction or set up a webhook to receive status updates.Next steps
Authentication
Set up credentials and IP allowlisting for production.
Webhooks
Get real-time notifications instead of polling.
Policies
Enforce spending limits and approval workflows.
API reference
Explore all available endpoints.