Skip to main content
This guide walks you through a complete integration flow: authenticate, create organizational resources, and submit your first transaction on Quantum Chain.

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 format key_id:secret.

Step 2: Create a tenant

A tenant is an isolated organizational unit. All vaults, wallets, and transactions belong to a tenant.
Save your tenant ID:

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 challenge Keccak256("qustody:register:" + lowercase_address).

Step 5: Create a transaction

Submit a transfer. The transaction enters PENDING_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.
The transaction moves through SIGNEDBROADCASTINGCONFIRMINGCOMPLETED.

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.