Introduction

What is Aarc?

Aarc’s Intent Execution Protocol is a destination-first solution that enables atomic cross-chain transactions through a single API. It simplifies complex cross-chain operations by abstracting away the complexities of bridging, swapping, and executing transactions across different networks.

Why Use Aarc?

Atomic Execution

Transactions either complete entirely or fail completely, eliminating partial executions

Reduced Gas Costs

Optimized routing and execution paths minimize transaction fees

Simplified Workflows

Single API for handling deposits, swaps, and payments across chains

Reliable Execution

Built-in retry mechanisms and transaction monitoring

Key Concepts

Intents

Desired transaction outcomes (e.g., “deposit 100 USDC to Polygon”)

Deposit Addresses

Temporary addresses for funding intents

Orchestration Engine

The system that computes and executes the best cross-chain routes

Execution Cloud

The infrastructure that ensures reliable transaction execution

Authentication

API Keys

Generate your API key through the Aarc Developer Dashboard

Quickstart

Simple Example

Here’s a basic example of depositing 10 USDC from Ethereum to a DeFi protocol on Polygon:

1

Generate Deposit Address

curl -X GET https://bridge-swap.aarc.xyz/v3/deposit-address \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destinationChainId": "137",
    "destinationTokenAddress": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174",
    "toAmount": "10",
    "destinationRecipient": "0xDeFiContract",
    "transferType": "wallet",
    "routeType": "value"
  }'
2

Schedule Transaction

curl -X POST https://bridge-swap.aarc.xyz/v3/schedule-transaction \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fromAddress": "0x...",
    "toAddress": "0x...",
    "token": "USDC",
    "amount": "10",
    "scheduleTime": "2024-03-20T10:00:00Z"
  }'
3

Check Status

curl -X GET https://bridge-swap.aarc.xyz/v3/request-status/{requestId} \
  -H "x-api-key: YOUR_API_KEY"

Verify Compatibility

Before initiating transactions, check supported tokens and chains: