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:

FieldTypeRequiredDescription
typestringYesTransaction type (TRANSFER, CONTRACT_CALL, etc.)
senderobjectYesSender vault information (vaultId)
recipientobjectYesRecipient information (vaultId or address)
amountstringYesTransaction amount in human-readable format
assetobjectYesAsset details (type, decimals)
chainIdnumberYesBlockchain network chain ID
gasLimitstringNoMaximum gas units allocated
gasPricestringNoGas price in Gwei
includeDraftPoliciesbooleanNoInclude draft policies in evaluation
includePendingApprovalbooleanNoInclude pending approval policies

Simulation Process

  1. Validation — Validates transaction against schemas
  2. Policy Matching — Identifies all applicable policies
  3. Condition Evaluation — Tests each condition against transaction
  4. Action Determination — Determines resulting actions (ALLOW, BLOCK, REQUIRE_APPROVAL)
  5. Results Return — Provides detailed evaluation breakdown

Note: This endpoint does NOT create approval requests or execute transactions.

Response Fields

FieldTypeDescription
successbooleanWhether simulation completed successfully
simulationobjectSimulation results (see Simulation Object below)

Simulation Object

FieldTypeDescription
decisionenumFinal decision (ALLOW, BLOCK, REQUIRE_APPROVAL)
messagestringHuman-readable decision message
policyIdUUIDID of policy that triggered decision (nullable)
policyNamestringName of policy that triggered decision (nullable)
approversarrayList of required approvers (if REQUIRE_APPROVAL)
evaluationStepsarrayStep-by-step policy evaluation details
totalEvaluationTimeMsnumberTotal evaluation time in milliseconds
policiesEvaluatednumberNumber of policies evaluated
totalPoliciesnumberTotal policies available

Evaluation Step Object

FieldTypeDescription
policyIdUUIDPolicy identifier
policyNamestringPolicy name
prioritynumberPolicy priority (lower = higher priority)
statusstringEvaluation status (matched, not_matched)
conditionsarrayCondition evaluation results
actionobjectPolicy action with type (ALLOW, BLOCK, REQUIRE_APPROVAL)
enforcementModestringEnforcement mode (STRICT, PERMISSIVE)
evaluationTimeMsnumberTime 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