For the complete documentation index, see llms.txt. This page is also available as Markdown.

GET /transfers/{id}

Read a committed ordinary transfer

Read a committed ordinary transfer.

operationId: fetchOrdinaryTransfer

Declared server: https://api.testnet.nexus.xyz/v1. See Networks.

Not reachable through CCXT. Ordinary cross-owner payments use a recoverable owner signature and enrollment. CCXT transfer moves funds between balances of the same owner; no CCXT custody/signing adapter is shipped for this operation.

Authentication: ownerSignature.

Read a committed ordinary transfer

get
/transfers/{id}

The sender and recipient can read the same immutable receipt. An unrelated valid signer receives 404, as does an unknown id. Use an empty GET body.

Owner consent is an EIP-712 typed-data signature by the account's own key: recoverable secp256k1 in X-Signature (65-byte hex r || s || v; low-S, v 0/1 or 27/28). Domain {name: "Nexus Exchange", version: "1", chainId: 20056}, no verifyingContract, the same domain POST /withdrawals signs under. Each operation signs its own struct, named below; X-Timestamp is its timestampMs and must be within 30 seconds of server time, and on the two writes X-Nonce is its nonce. Every string field is signed exactly as sent. Both root and /api/v1 paths sign the same struct. The deployment domain is a struct field, sent in the body for POST and in the query for GET. HMAC/API-key, bearer-only and agent authority cannot authorize these operations. The server sets Cache-Control: no-store. Signed struct: OrdinaryTransferReceipt(address account,string domain,uint64 transferId,uint64 timestampMs), with transferId from the path. A receipt read carries no after, limit or client_transfer_id.

Reduced shape when Accounts serves this read (ENG-18394). A deployment answers this operation either from the Engine, which states every field below, or from Accounts' durable transfer projection, which records balance movements and not the Engine's receipt. From the projection: source or destination is null for a side not yet recorded (a half-recorded transfer; status is still committed), client_transfer_id and domain are always null, committed_at_ms is an approximation of the commit time, amount is the absolute value, and balance on the history is null. A transfer whose id is not yet known as a plain number is not listed and cannot be read by id. A transfer that has just committed can be absent until it is recorded, so a 404 for an id you were just given may be transient. Ids and the cursor are unchanged: history is ascending by numeric transfer id, after is exclusive, and next_cursor is the last returned id.

Authorizations
X-SignaturestringRequired

Recoverable secp256k1 owner signature over an EIP-712 typed-data struct, one per operation. This is not an HMAC API key or an agent signature. See each ordinary transfer operation for its struct.

Path parameters
idinteger · int64 · min: 1Required
Query parameters
accountstringRequired

Owner account signing this read.

Pattern: ^(0x)?[0-9a-fA-F]{40}$
domainstring · min: 1 · max: 64Required

Deployment domain, included in the signature.

Pattern: ^[A-Za-z0-9_-]+$
Header parameters
X-Timestampstring · max: 20Required

Unix milliseconds, the timestampMs field of the signed struct; within 30 seconds of server time.

Pattern: ^[0-9]+$
Responses
200

Committed result or authoritative read.

application/json
transfer_idstringRequiredPattern: ^[1-9][0-9]*$
statusstring · enumRequiredPossible values:
assetstring · enumRequiredPossible values:
sourcestring · nullableRequired

null when this side of the transfer is not recorded yet. null only on reads served from Accounts' projection; the Engine and the POST response always state it.

Pattern: ^(0x)?[0-9a-fA-F]{40}$
destinationstring · nullableRequired

null when this side of the transfer is not recorded yet. null only on reads served from Accounts' projection; the Engine and the POST response always state it.

Pattern: ^(0x)?[0-9a-fA-F]{40}$
amountstringRequiredPattern: ^[0-9]+\.[0-9]{6}$
client_transfer_idstring · min: 1 · max: 64 · nullableRequired

The projection holds no client transfer ids. null only on reads served from Accounts' projection; the Engine and the POST response always state it.

Pattern: ^[A-Za-z0-9_-]+$
domainstring · min: 1 · max: 64 · nullableRequired

The projection does not record the deployment domain. null only on reads served from Accounts' projection; the Engine and the POST response always state it.

Pattern: ^[A-Za-z0-9_-]+$
committed_at_msinteger · int64Required

Unix milliseconds. On reads served from Accounts' projection this is an approximation of the commit time.

get/transfers/{id}
GET /v1/transfers/{id}?account=text&domain=text HTTP/1.1
Host: api.testnet.nexus.xyz
X-Signature: YOUR_API_KEY
X-Timestamp: text
Accept: */*
{
  "transfer_id": "text",
  "status": "committed",
  "asset": "USDX",
  "source": null,
  "destination": null,
  "amount": "text",
  "client_transfer_id": null,
  "domain": null,
  "committed_at_ms": 1
}

API version 0.9.131

Last updated