Skip to main content

wire

Base URL

Configured via shyconfig.api.base_url.

Authentication

TierEndpointsAuth
PublicGET /supply/{asset_id}, GET /transfer/{id}, GET /transfers/count, custody reads, financing reads
UserPOST /transfers, POST /accounts, GET /balance/{asset_id}/{commitment}Bearer token (getAuthHeaders)
OperatorPOST /assets, POST /mint, POST /burn, custody writes, financing writes, intent routesOperator JWT + operatorMode: true

Endpoints

Wire / transfer

MethodPathDescription
POST/transfersExecute an anonymous transfer
GET/transfer/{transfer_id}Get a transfer record (List 1)
GET/transfers/countTotal transfer count
POST/accountsRegister an account commitment
GET/balance/{asset_id}/{account_commitment}Account balance
POST/assetsRegister an asset (operator)
GET/assets/{asset_id}Asset metadata
GET/supply/{asset_id}Public supply totals
POST/mintMint supply (operator)
POST/burnBurn supply (operator)

Custody

MethodPathDescription
GET/POST/custody/policiesList / register consortium policies
GET/custody/policies/currentActive policy
GET/POST/custody/operatorsList / register warehouse operators
GET/POST/custody/skusList / register SKU classes
GET/POST/custody/lotsList / record intake lots
GET/custody/lots/{id}Get a lot
GET/POST/custody/redemptionsList / request redemptions
POST/custody/redemptions/settleSettle a redemption (operator)

Financing

MethodPathDescription
POST/contractsRegister a contract
POST/contracts/activateActivate a contract
GET/contracts/{id}Get a contract
POST/contracts/executionsSubmit a contract execution
GET/contracts/executions/{id}Get an execution record

POST /transfers

{
"asset_id": "usdc",
"sender_commitment": "abc123...",
"recipient_commitment": "def456...",
"amount": 100000,
"nullifier": "xyz789...",
"submission_nonce": "<32-byte hex>",
"timestamp": 1741651200
}

Response: { "submission_id": "9a3f...", "height": 142 }

submission_id = H(submission_nonce) is the only receipt — store it to prove the transfer occurred.

Errors: 409 duplicate nullifier · 422 insufficient balance · 422 unknown asset


GET /transfer/{transfer_id}

{ "submission_id": "9a3f...", "asset_id": "usdc", "amount": 100000, "height": 142 }

Amount and asset only — no sender or recipient identity.


GET /supply/{asset_id}

{ "asset_id": "usdc", "total_minted": 10000000000, "total_burned": 500000000, "total_supply": 9500000000 }

total_supply = total_minted - total_burned — enforced on every mint and burn, verifiable by any party.