Submit a transaction
Submit a transaction for processing with policy evaluation and workflow orchestration. The transaction will be validated, enriched with organization and network configuration, evaluated against policies, sent for approval if required, and executed on the blockchain through automated workflows.
Request Body
Core Fields
| Field | Type | Required | Description |
|---|
chainId | number | Yes | Blockchain network identifier (e.g., 1 for Ethereum, 137 for Polygon) |
type | string | No | Transaction type (default: TRANSFER) |
accountIdentifier | string | No | Account identification method: address or bsb_account_number (default: address) |
Transaction Types
| Type | Description | Gas Required |
|---|
| TRANSFER | Send native currency or ERC-20 tokens | Yes |
| CONTRACT_WRITE | Execute state-changing contract function | Yes |
| CONTRACT_READ | Query contract state (view/pure) | No |
| CONTRACT_DEPLOY | Deploy new smart contract | Yes |
| MINT | Create new tokens | Yes |
| BURN | Destroy tokens | Yes |
| RAW_SIGNING | Sign arbitrary data | No |
Sender Object
The sender must be an internal vault owned by your organization.
| Field | Type | Description |
|---|
vaultId | UUID | Internal vault identifier |
address | string | Blockchain wallet address (0x..., 42 chars) |
bsb | string | Bank State Branch code (required when accountIdentifier=bsb_account_number) |
accountNumber | string | Bank account number (required when accountIdentifier=bsb_account_number) |
Recipient Object
| Field | Type | Description |
|---|
vaultId | UUID | Internal vault for vault-to-vault transfers |
address | string | External blockchain address (0x..., 42 chars) |
bsb | string | Bank State Branch code (required when accountIdentifier=bsb_account_number) |
accountNumber | string | Bank account number (required when accountIdentifier=bsb_account_number) |
Asset Object (Required for TRANSFER)
| Field | Type | Required | Description |
|---|
type | string | Yes | native (ETH/MATIC) or token (ERC-20) |
address | string | If type=token | ERC-20 contract address |
symbol | string | No | Asset symbol (auto-fetched if omitted) |
decimals | integer | No | Decimal places (auto-fetched if omitted) |
Additional Fields
| Field | Type | Description |
|---|
amount | string | Transaction amount in human-readable format (e.g., "1.5") |
data | string | Hex-encoded transaction data (0x...) |
functionSignature | string | Human-readable function signature for CONTRACT_WRITE and CONTRACT_READ (used for policy evaluation and audit logs) |
contractAddress | string | Contract address for CONTRACT_READ/CONTRACT_WRITE |
functionName | string | Function name for CONTRACT_READ |
parameters | array | Function parameters for CONTRACT_READ |
abi | array | Contract ABI for CONTRACT_READ result decoding |
gasLimit | string | Maximum gas units (auto-estimated if omitted) |
gasPrice | string | Gas price in Gwei for legacy transactions (cannot be combined with maxFeePerGas/maxPriorityFeePerGas) |
maxFeePerGas | string | EIP-1559 max fee per gas in Gwei |
maxPriorityFeePerGas | string | EIP-1559 priority fee (tip) per gas in Gwei |
nonce | string | Transaction sequence number for sender address (auto-fetched if omitted) |
performChainalysisScreening | boolean | Enable Chainalysis sanctions/risk screening on the recipient |
performNotabeneScreening | boolean | Enable Notabene Travel Rule screening for VASP-to-VASP compliance |
Response
Returns 202 Accepted on successful submission.
| Field | Type | Required | Description |
|---|
transactionId | string | Yes | Unique transaction identifier (UUID). Use this to track status |
status | string | Yes | Current status (enum: PENDING_WORKFLOW_START) |
message | string | Yes | Human-readable status message |
Transaction Workflow
- Validation — Request validated against schema
- Enrichment — Organization and network configuration added
- Policy Evaluation — Rules checked for approval requirements
- Approval — Multi-party approval if policy requires
- Execution — Transaction signed and broadcast to blockchain
- Confirmation — Transaction confirmed on chain
Use Cases
- Process payroll or vendor payments
- Execute token transfers to external addresses
- Interact with DeFi protocols (CONTRACT_WRITE)
- Deploy smart contracts for tokenization
- Read on-chain data without gas fees (CONTRACT_READ)
Required Permission
transactions:create