Simulate transaction policy evaluation
Simulate policy evaluation for a transaction without executing it. This endpoint validates the transaction, evaluates all applicable policies, and returns detailed step-by-step results.
Request Body
The request body mirrors the submit transaction endpoint:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Transaction type (TRANSFER, CONTRACT_CALL, etc.) |
sender | object | Yes | Sender vault information (vaultId) |
recipient | object | Yes | Recipient information (vaultId or address) |
amount | string | Yes | Transaction amount in human-readable format |
asset | object | Yes | Asset details (type, decimals) |
chainId | number | Yes | Blockchain network chain ID |
gasLimit | string | No | Maximum gas units allocated |
gasPrice | string | No | Gas price in Gwei |
includeDraftPolicies | boolean | No | Include draft policies in evaluation |
includePendingApproval | boolean | No | Include pending approval policies |
Simulation Process
- Validation — Validates transaction against schemas
- Policy Matching — Identifies all applicable policies
- Condition Evaluation — Tests each condition against transaction
- Action Determination — Determines resulting actions (ALLOW, BLOCK, REQUIRE_APPROVAL)
- Results Return — Provides detailed evaluation breakdown
Note: This endpoint does NOT create approval requests or execute transactions.
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Whether simulation completed successfully |
simulation | object | Simulation results (see Simulation Object below) |
Simulation Object
| Field | Type | Description |
|---|---|---|
decision | enum | Final decision (ALLOW, BLOCK, REQUIRE_APPROVAL) |
message | string | Human-readable decision message |
policyId | UUID | ID of policy that triggered decision (nullable) |
policyName | string | Name of policy that triggered decision (nullable) |
approvers | array | List of required approvers (if REQUIRE_APPROVAL) |
evaluationSteps | array | Step-by-step policy evaluation details |
totalEvaluationTimeMs | number | Total evaluation time in milliseconds |
policiesEvaluated | number | Number of policies evaluated |
totalPolicies | number | Total policies available |
Evaluation Step Object
| Field | Type | Description |
|---|---|---|
policyId | UUID | Policy identifier |
policyName | string | Policy name |
priority | number | Policy priority (lower = higher priority) |
status | string | Evaluation status (matched, not_matched) |
conditions | array | Condition evaluation results |
action | object | Policy action with type (ALLOW, BLOCK, REQUIRE_APPROVAL) |
enforcementMode | string | Enforcement mode (STRICT, PERMISSIVE) |
evaluationTimeMs | number | Time taken to evaluate this policy in milliseconds |
Use Cases
- Preview what policies will match before submitting
- Test draft policies before activating them
- Debug policy configurations and conditions
- Build UI policy simulation tools
- Validate high-value transactions before execution
Required Permission
transactions:read
Simulate transaction policy evaluation
Simulate policy evaluation for a transaction without executing it. This endpoint validates the transaction, evaluates all applicable policies, and returns detailed step-by-step results.
Request Body
The request body mirrors the submit transaction endpoint:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Transaction type (TRANSFER, CONTRACT_CALL, etc.) |
sender | object | Yes | Sender vault information (vaultId) |
recipient | object | Yes | Recipient information (vaultId or address) |
amount | string | Yes | Transaction amount in human-readable format |
asset | object | Yes | Asset details (type, decimals) |
chainId | number | Yes | Blockchain network chain ID |
gasLimit | string | No | Maximum gas units allocated |
gasPrice | string | No | Gas price in Gwei |
includeDraftPolicies | boolean | No | Include draft policies in evaluation |
includePendingApproval | boolean | No | Include pending approval policies |
Simulation Process
- Validation — Validates transaction against schemas
- Policy Matching — Identifies all applicable policies
- Condition Evaluation — Tests each condition against transaction
- Action Determination — Determines resulting actions (ALLOW, BLOCK, REQUIRE_APPROVAL)
- Results Return — Provides detailed evaluation breakdown
Note: This endpoint does NOT create approval requests or execute transactions.
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Whether simulation completed successfully |
simulation | object | Simulation results (see Simulation Object below) |
Simulation Object
| Field | Type | Description |
|---|---|---|
decision | enum | Final decision (ALLOW, BLOCK, REQUIRE_APPROVAL) |
message | string | Human-readable decision message |
policyId | UUID | ID of policy that triggered decision (nullable) |
policyName | string | Name of policy that triggered decision (nullable) |
approvers | array | List of required approvers (if REQUIRE_APPROVAL) |
evaluationSteps | array | Step-by-step policy evaluation details |
totalEvaluationTimeMs | number | Total evaluation time in milliseconds |
policiesEvaluated | number | Number of policies evaluated |
totalPolicies | number | Total policies available |
Evaluation Step Object
| Field | Type | Description |
|---|---|---|
policyId | UUID | Policy identifier |
policyName | string | Policy name |
priority | number | Policy priority (lower = higher priority) |
status | string | Evaluation status (matched, not_matched) |
conditions | array | Condition evaluation results |
action | object | Policy action with type (ALLOW, BLOCK, REQUIRE_APPROVAL) |
enforcementMode | string | Enforcement mode (STRICT, PERMISSIVE) |
evaluationTimeMs | number | Time taken to evaluate this policy in milliseconds |
Use Cases
- Preview what policies will match before submitting
- Test draft policies before activating them
- Debug policy configurations and conditions
- Build UI policy simulation tools
- Validate high-value transactions before execution
Required Permission
transactions:read