Skip to main content

Transactions

POST /transactions

Submit a transaction for verification.

Authentication: API Key or JWT. Scopes: transactions:create:own

Request Body

{
"escrowAddress": "0x742d35Cc6634C0532925a3b8D9c9e3E16b8d6e9",
"userPrompt": "Send 0.1 ETH to Alice",
"tx": {
"to": "0x742d35Cc6634C0532925a3b8D9c9e3E16b8d6e9",
"value": "100000000000000000",
"data": "0x"
},
"chainId": 11155111
}
FieldTypeRequiredDescription
escrowAddressstringYesEthereum address of the user/escrow account
userPromptstringYesNatural language intent that initiated the transaction
txobjectYesTransaction call data
tx.tostringYesDestination contract/address
tx.valuestringYesWei value as a decimal string
tx.datastringYesHex-encoded calldata ("0x" for plain transfers)
contextLogsobjectNoArbitrary context for debugging/auditing
chainIdnumberNoTarget chain ID (defaults to 11155111 Sepolia)

Response (201 Created)

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"requestHash": "0x1234...",
"description": "Send 0.1 ETH to Alice",
"status": "PENDING",
"execution": 0,
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}

Status Codes: 201 Created, 400 Invalid request, 401 Auth failed, 403 Not authorized for escrow address, 404 User not found, 429 Rate limit

GET /transactions/users/:ethereumAddress

Get all transactions for a user with approval information.

Authentication: API Key or JWT

Status Codes: 200 Success, 404 User not found, 403 Can only access own transactions

Approvals

POST /transactions/:requestHash/approvals

Approve or reject a transaction.

Authentication: API Key or JWT

Request Body:

{
"decision": "APPROVED"
}
FieldTypeRequiredDescription
decisionstringYes"APPROVED" or "REJECTED"

Status Codes: 201 Created, 400 Invalid request, 401 Auth failed, 403 Can’t approve others’ transactions, 404 Not found

GET /transactions/:requestHash/approval-status

Get approval status for a transaction.

Authentication: API Key or JWT

Response:

{
"user": [
{
"id": "approval-id",
"transactionId": "transaction-id",
"decision": "APPROVED",
"type": "user_ui",
"approver": {
"id": "user-id",
"ethereumAddress": "0x..."
},
"createdAt": "2024-01-01T00:00:00.000Z"
}
],
"orion": [
{
"id": "orion-approval-id",
"transactionId": "transaction-id",
"decision": "APPROVED",
"type": "orion",
"confidence": 0.95,
"createdAt": "2024-01-01T00:00:00.000Z"
}
]
}

Status Codes: 200 Success, 404 Not found