Skip to main content

Naming Convention

The API uses the following naming convention:
  • Intent: The parent action which contains ChainBatch(es)
  • ChainBatch: For a specific chain, and has many Call(s)
  • Call: Has to, data, and value parameters

Process Flow

For a detailed technical explanation of the underlying technologies, including EIP-7702 and the Delegate contract, see our deep dive on EIP-7702 and Delegate Contract.

What Actually Happens

1. Action Submission

When you call POST /actions:
  1. Validation: the API validates the action, its intents, and the chainAuthorizations
  2. Storage: the action and its intents are persisted and assigned a tracking actionId
  3. Solver hand-off: the intents are made available to the solver network
  4. Response: returns the actionId for tracking

2. Step Execution

Each step runs at POST /actions/{actionId}/intents/{intentIndex}/steps/{stepIndex}:
  1. Step lookup: retrieves the step by action id, intent index, and step index
  2. Execution: performs the work for that step (checks, transactions)
  3. Result capture: records results and any transaction hashes
  4. Status: track progress with GET /actions/{actionId}/intents/{intentIndex}/steps/{stepIndex}

Technical Implementation

Intent Structure

Step Execution Model

Transaction Submit Request Structure

Key Concepts

Intent ID Generation

  • The intent ID is the signature of the chainBatches
  • This approach is similar to Solana’s transaction ID system
  • Provides a unique, deterministic identifier for each intent

Step Index System

  • Steps are indexed as integers: [0, n) where n = chainBatches.length
  • Step 0 = first chain authorization, Step 1 = second, etc.
  • Steps must be executed sequentially in order

Authorization Array

  • Multiple Authorizations: Can submit multiple EIP-7702 authorizations in a single transaction
  • Cross-Chain Support: Each authorization can be for different chains or addresses
  • Flexible Delegation: Supports complex multi-chain execution patterns

Execution Model

  • Active Execution: Calling the POST endpoint triggers actual work
  • Unit of Work: Each step call performs one discrete operation
  • Stateful: Execution state is persisted in the database
  • Resumable: Failed or interrupted intents can be resumed

Error Handling

The API implements comprehensive error handling:
  • 400 Bad Request: Invalid transaction format, malformed parameters, or out-of-range step IDs
  • 404 Not Found: Intent not found or step index exceeds available steps
  • 500 Internal Server Error: Database errors, chain communication failures, or execution errors

Data Persistence

Unlike the current in-memory implementation:
  • Database Storage: All intent data is persisted to database
  • Reliable Execution: Steps can be retried if they fail
  • Audit Trail: Complete execution history is maintained
  • Recovery: System can recover from restarts without losing state

Monitoring

Comprehensive monitoring capabilities:
  • Database Logging: All operations are logged to database
  • Execution Tracking: Detailed step-by-step execution results
  • Transaction Hashes: All on-chain transactions are tracked
  • Status Endpoints: Real-time status via API calls

Use Cases

Perp DEXes

Power bridge-free native deposits from every network into margin accounts on Perp DEXes.

Money Markets

Enable users to natively deposit assets directly into lending markets from every major network.

AMMs

Facilitate bridge-free provision of liquidity from every network by enabling users to deposit assets into liquidity pools from any chain.