Transactions
15 min
transactions are the lifecycle record for asset movement, contract execution, staking and delegation, ramps, and foreign exchange flows all amounts are decimal strings create calls return a transaction ; its status is the lifecycle source of truth a successful http response does not imply that the transaction has completed choose a transaction flow goal use move a known asset from a known source to a known destination transfers submit a contract call, stake a resource, or delegate a protocol resource on chain interactions request and execute a priced on ramp, off ramp, or foreign exchange route ramps & fx the sections below cover operations shared by every transaction type open the corresponding child page for creation requests, request fields, and complete examples list transactions get /api/external/transactions/?limit={limit}\&cursor={cursor}&{filters} query parameters parameter type required description limit number no requested page size sdk default 20 cursor string | null no cursor for the next page filters record\<string, string> no transaction filters such as status , category , vaultid , asset , or externalid when supported request example { "query" { "limit" 20, "cursor" null, "status" "completed", "vaultid" "vault 123" } } response interface transactionlistresponse { results transaction\[]; nextcursor? string | null; hasnext? boolean; } json example { "results" \[ { "id" "transaction 123", "orgid" "org 456", "vaultid" "vault 123", "status" "completed", "transactiontype" "outgoing", "category" "transfer", "subcategory" "external transfer", "createdat" "2026 08 04t10 40 00z", "updatedat" "2026 08 04t10 42 15z", "isdeleted" false, "externalid" "invoice 1001", "memo" "vendor payout #1001", "source" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "destination" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "blockchain" "ethereum", "asset" "eth", "amount" "0 50", "txhash" "0x9f4e6c1b7a2d3e4f", "operations" \[ { "source" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "destination" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "balancechanges" { "changes" \[ { "party" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "asset" "eth", "amount" " 0 50", "chain" "ethereum" }, { "party" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "asset" "eth", "amount" "0 50", "chain" "ethereum" } ] }, "sequence" 1, "type" "transfer", "status" "completed" } ], "balancechanges" { "changes" \[ { "party" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "asset" "eth", "amount" " 0 50", "chain" "ethereum" }, { "party" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "asset" "eth", "amount" "0 50", "chain" "ethereum" } ] } } ], "nextcursor" "eyjpzci6inryyw5zywn0aw9uxzeymyj9", "hasnext" true } javascript sdk gettransactions( params? record\<string, string>, limit? number, cursor? string | null, ) promise\<transactionlistresponse> retrieve a transaction get /api/external/transactions/{transactionid}/ request example { "path" { "transactionid" "transaction 123" } } response { "id" "transaction 123", "orgid" "org 456", "vaultid" "vault 123", "status" "completed", "transactiontype" "outgoing", "category" "transfer", "subcategory" "external transfer", "createdat" "2026 08 04t10 40 00z", "updatedat" "2026 08 04t10 42 15z", "isdeleted" false, "externalid" "invoice 1001", "memo" "vendor payout #1001", "source" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "destination" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "blockchain" "ethereum", "asset" "eth", "amount" "0 50", "txhash" "0x9f4e6c1b7a2d3e4f", "operations" \[ { "source" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "destination" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "balancechanges" { "changes" \[ { "party" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "asset" "eth", "amount" " 0 50", "chain" "ethereum" }, { "party" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "asset" "eth", "amount" "0 50", "chain" "ethereum" } ] }, "sequence" 1, "type" "transfer", "status" "completed" } ], "balancechanges" { "changes" \[ { "party" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "asset" "eth", "amount" " 0 50", "chain" "ethereum" }, { "party" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "asset" "eth", "amount" "0 50", "chain" "ethereum" } ] } } javascript sdk gettransactionbyid(transactionid string) promise\<transaction> replace a submitted transaction post /api/external/transactions/replace transaction/ rest request body { "transactionid" "transaction 123" } replacement is accepted only for a submitted transaction on a chain that supports replacement and when no active replacement already exists response { "id" "transaction replacement 456", "orgid" "org 456", "vaultid" "vault 123", "status" "pending", "transactiontype" "outgoing", "category" "transfer", "subcategory" "external transfer", "createdat" "2026 08 04t10 40 00z", "updatedat" "2026 08 04t11 30 00z", "isdeleted" false, "externalid" "invoice 1001 replacement", "memo" "vendor payout #1001", "source" { "type" "vault", "id" "vault 123", "suborgid" "sub org 123", "name" "treasury vault" }, "destination" { "type" "contact", "id" "contact 456", "name" "operations wallet", "address" "0xabc1234567890abcdef1234567890abcdef1234", "chain" "ethereum" }, "blockchain" "ethereum", "asset" "eth", "amount" "0 50", "nonce" 42 } javascript sdk replacetransaction(request { transactionid string; }) promise\<transaction>