LogoLogo
DAO Docs
  • 🤓Concepts
    • Overview
    • Background
    • How it Works
      • Architecture
      • Intents
  • 💻Developers
    • Getting Started
    • Fundamentals
    • Protocol Mechanics
    • Guides
      • Rebalancers
      • Arbitrageurs
      • xERC20
      • New Chains
    • API
    • Audits
    • Glossary
    • FAQs
  • 📚Resources
    • Contracts
      • Testnet
      • Mainnet
    • Subgraphs
      • Testnet
      • Mainnet
Powered by GitBook
On this page
  1. Developers

API

The Everclear API contains endpoints to create new intents, track intent statuses, and more.

PreviousNew ChainsNextAudits

Last updated 22 days ago

Testnet API: https://api.testnet.everclear.org

Mainnet API: https://api.everclear.org

💻

Get intent details

get

Fetches detailed information for a specified intent by its ID

Path parameters
intentIdstringRequired

The unique identifier for the intent

Responses
200
Successful retrieval of intent details
application/json
400
Invalid Intent ID
application/json
500
Server error
application/json
get
GET /intents/{intentId} HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "intent": {
    "intent_id": "text",
    "queue_idx": 1,
    "message_id": "text",
    "status": "NONE",
    "receiver": "text",
    "input_asset": "text",
    "output_asset": "text",
    "origin_amount": "text",
    "destination_amount": "text",
    "origin": "text",
    "destinations": [
      "text"
    ],
    "nonce": 1,
    "transaction_hash": "text",
    "receive_tx_hash": "text",
    "intent_created_timestamp": 1,
    "settlement_timestamp": 1,
    "intent_created_block_number": 1,
    "receive_blocknumber": 1,
    "tx_origin": "text",
    "tx_nonce": 1,
    "auto_id": 1,
    "max_fee": "text",
    "call_data": "text",
    "filled": true,
    "initiator": "text",
    "native_fee": "text",
    "token_fee": "text",
    "fee_adapter_initiator": "text",
    "origin_gas_fees": "text",
    "destination_gas_fees": "text",
    "hub_settlement_domain": "text",
    "ttl": 1
  }
}

Return unsupported intent

post

The request object for returnUnsupportedIntent on hub domain

Path parameters
intentIdstringRequired

The unique identifier for the intent

Responses
200
Successful response with a TransactionRequest object
application/json
400
Invalid input
application/json
500
Server error
application/json
post
POST /intents/{intentId}/return-unsupported HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "to": "text",
  "from": "text",
  "nonce": "text",
  "gasLimit": "text",
  "gasPrice": "text",
  "data": "Ynl0ZXM=",
  "value": "text",
  "chainId": 1,
  "type": 1,
  "accessList": [
    {
      "address": "text",
      "storageKeys": [
        "text"
      ]
    }
  ],
  "maxPriorityFeePerGas": "text",
  "maxFeePerGas": "text",
  "customData": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "ccipReadEnabled": true
}

Get invoices

get

Retrieves a paginated list of invoices in FIFO queue order

Query parameters
cursorstringOptional
prevCursorstringOptional
limitintegerOptional
tickerHashstringOptional
originsstring[]Optional
destinationsstring[]Optional
sortOrderByDiscountstringOptional
Responses
200
Successful retrieval of invoices
application/json
400
Invalid input
application/json
500
Server error
application/json
get
GET /invoices HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "invoices": [
    {
      "intent_id": "text",
      "owner": "text",
      "entry_epoch": 1,
      "amount": "text",
      "discountBps": 1,
      "origin": "text",
      "destinations": [
        "text"
      ],
      "hub_status": "NONE",
      "ticker_hash": "text",
      "hub_invoice_enqueued_timestamp": "text"
    }
  ],
  "nextCursor": "text",
  "prevCursor": "text",
  "maxCount": 1
}

Return invoice details

get

Fetches detailed information for a specified invoice by its intentID

Path parameters
intentIdstringRequired

The unique identifier for the intent

Responses
200
Successful retrieval of invoice details
application/json
400
Invalid Intent ID
application/json
500
Server error
application/json
get
GET /invoices/{intentId} HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "invoice": {
    "intent_id": "text",
    "owner": "text",
    "entry_epoch": 1,
    "amount": "text",
    "discountBps": 1,
    "origin": "text",
    "destinations": [
      "text"
    ],
    "hub_status": "NONE",
    "ticker_hash": "text",
    "hub_invoice_enqueued_timestamp": "text"
  }
}

Calculate minimum amounts needed to settle invoice

get

Calculates the minimum amounts per destination domain to settle a specified invoice

Path parameters
intentIdstringRequired

The unique identifier for the invoice intent

Responses
200
Successful calculation of minimum amounts
application/json
400
Invalid input
application/json
500
Server error
application/json
get
GET /invoices/{intentId}/min-amounts HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "invoiceAmount": "text",
  "amountAfterDiscounts": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "discountBps": "text",
  "custodiedAmounts": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "minAmounts": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

Get liquidity flow metrics

get

Returns the liquidity flow for all chains, optionally filtered by asset, from_chain, and to_chain.

Query parameters
start_datestring · dateOptional

The start date for the query (default to the protocol's start date).

end_datestring · dateOptional

The end date for the query (default to the current date).

tickerHashstringOptional

The symbol of the asset for which you want to get liquidity flow (e.g., "WETH", "USDC"). If omitted, returns data for all assets.

originintegerOptional

The originating chain ID. If omitted, returns data for all chains.

destinationintegerOptional

The destination chain ID. If omitted, returns data for all chains.

Responses
200
A list of liquidity flows for the specified query parameters.
application/json
400
Invalid input
application/json
500
Server error
application/json
get
GET /metrics/liquidity-flow HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "data": [
    {
      "asset_symbol": "text",
      "liquidity_flows": [
        {
          "day": "2025-05-30T20:43:51.180Z",
          "from_chain_id": 1,
          "to_chain_id": 1,
          "total_volume": 1,
          "num_intents": 1,
          "avg_protocol_fee_bps": 1,
          "avg_settlement_time_seconds": 1,
          "avg_discount": 1
        }
      ]
    }
  ]
}

Get clearing volume metrics

get

Returns the total clearing volume for all chains, optionally filtered by date, origin, destination, and ticker hash.

Query parameters
start_datestring · dateOptional

The start date for the query (defaults to the protocol's start date).

end_datestring · dateOptional

The end date for the query (defaults to the current day).

originintegerOptional

The originating chain ID. If omitted, returns data for all chains.

destinationintegerOptional

The destination chain ID. If omitted, returns data for all chains.

tickerHashstringOptional

The ticker hash of the asset for which you want to get the clearing volume. If omitted, returns data for all assets.

Responses
200
A list of clearing volumes for the specified query parameters.
application/json
400
Invalid input
application/json
500
Server error
application/json
get
GET /metrics/clearing-volume HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "data": {
    "start_date": "2025-05-30",
    "end_date": "2025-05-30",
    "assets": [
      {
        "asset_symbol": "text",
        "total_clearing_volume": 1,
        "total_rebalancing_fees": 1,
        "total_num_intents": 1,
        "details": [
          {
            "day": "2025-05-30T20:43:51.180Z",
            "clearing_volume": 1,
            "rebalancing_fees": 1,
            "num_intents": 1,
            "from_chain_id": 1,
            "to_chain_id": 1,
            "total_volume": 1
          }
        ]
      }
    ]
  }
}
  • GETGet intents
  • POSTCreate new intent(s)
  • POSTCreate a new intent on Solana
  • GETGet intent details
  • POSTExecute calldata
  • POSTReturn unsupported intent
  • GETGet invoices
  • GETReturn invoice details
  • GETCalculate minimum amounts needed to settle invoice
  • GETGet liquidity flow metrics
  • GETGet clearing volume metrics
  • POSTGet quote for a route, including fees and limits
  • POSTGet current limits for a route

Get intents

get

Retrieves a paginated list of intents based on query parameters

Query parameters
cursorstringOptional
prevCursorstringOptional
limitintegerOptional
statusesstring[]Optional
originsstring[]Optional
destinationsstring[]Optional
allDestinationsstring[]Optional
txHashstringOptional
userAddressstringOptional
startDatestringOptional
endDatestringOptional
assetstringOptional
Responses
200
Successful retrieval of intents
application/json
400
Invalid input
application/json
500
Server error
application/json
get
GET /intents HTTP/1.1
Host: api.everclear.org
Accept: */*
{
  "intents": [
    {
      "intent_id": "text",
      "queue_idx": 1,
      "message_id": "text",
      "status": "NONE",
      "receiver": "text",
      "input_asset": "text",
      "output_asset": "text",
      "origin_amount": "text",
      "destination_amount": "text",
      "origin": "text",
      "destinations": [
        "text"
      ],
      "nonce": 1,
      "transaction_hash": "text",
      "receive_tx_hash": "text",
      "intent_created_timestamp": 1,
      "settlement_timestamp": 1,
      "intent_created_block_number": 1,
      "receive_blocknumber": 1,
      "tx_origin": "text",
      "tx_nonce": 1,
      "auto_id": 1,
      "max_fee": "text",
      "call_data": "text",
      "filled": true,
      "initiator": "text",
      "native_fee": "text",
      "token_fee": "text",
      "fee_adapter_initiator": "text",
      "origin_gas_fees": "text",
      "destination_gas_fees": "text",
      "hub_settlement_domain": "text",
      "ttl": 1
    }
  ],
  "nextCursor": "text",
  "prevCursor": "text",
  "maxCount": 1
}

Create new intent(s)

post

Endpoint to generate a TransactionRequest for one or multiple intents. For multiple intents, the transaction will target a fee adapter contract with appropriately formatted calldata.

Body
one ofOptional
or
Responses
200
Successful response with a TransactionRequest object
application/json
400
Invalid input
application/json
404
Registries not found and deployed for given domain
application/json
500
Server error
application/json
post
POST /intents HTTP/1.1
Host: api.everclear.org
Content-Type: application/json
Accept: */*
Content-Length: 211

{
  "origin": "text",
  "destinations": [
    "text"
  ],
  "to": "text",
  "inputAsset": "text",
  "amount": "text",
  "callData": "text",
  "maxFee": "text",
  "permit2Params": {
    "nonce": "text",
    "deadline": "text",
    "signature": "text"
  },
  "order_id": "text"
}
{
  "to": "text",
  "from": "text",
  "nonce": "text",
  "gasLimit": "text",
  "gasPrice": "text",
  "data": "Ynl0ZXM=",
  "value": "text",
  "chainId": 1,
  "type": 1,
  "accessList": [
    {
      "address": "text",
      "storageKeys": [
        "text"
      ]
    }
  ],
  "maxPriorityFeePerGas": "text",
  "maxFeePerGas": "text",
  "customData": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "ccipReadEnabled": true
}

Create a new intent on Solana

post

Submits a new intent transaction to the Solana blockchain using the specified parameters and configuration.

Body
originstringRequired
destinationsstring[]Required
tostringRequired
inputAssetstringRequired
amountstring · bigintRequired
callDatastringRequired
maxFeestring · bigintRequired
userstringRequired
userTokenAccountPublicKeystringRequired
programVaultAccountPublicKeystringRequired
Responses
200
Successfully created intent transaction
application/json
400
Registries not found and deployed for given domain
application/json
404
Registries not found and deployed for given domain
application/json
500
Registries not found and deployed for given domain
application/json
post
POST /solana/intents HTTP/1.1
Host: api.everclear.org
Content-Type: application/json
Accept: */*
Content-Length: 280

{
  "origin": "text",
  "destinations": [
    "text"
  ],
  "to": "text",
  "inputAsset": "text",
  "amount": "text",
  "callData": "text",
  "maxFee": "text",
  "user": "text",
  "userTokenAccountPublicKey": "text",
  "programVaultAccountPublicKey": "text",
  "permit2Params": {
    "nonce": "text",
    "deadline": "text",
    "signature": "text"
  }
}
{
  "to": "text",
  "from": "text",
  "nonce": "text",
  "gasLimit": "text",
  "gasPrice": "text",
  "data": "Ynl0ZXM=",
  "value": "text",
  "chainId": 1,
  "type": 1,
  "accessList": [
    {
      "address": "text",
      "storageKeys": [
        "text"
      ]
    }
  ],
  "maxPriorityFeePerGas": "text",
  "maxFeePerGas": "text",
  "customData": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "ccipReadEnabled": true
}

Execute calldata

post

The request object for executeIntentCalldata, used for self-execution

Path parameters
intentIdstringRequired

The unique identifier for the intent

Body
domainstringRequired

The domain for the request

Responses
200
Successful response with a TransactionRequest object
application/json
400
Invalid input
application/json
500
Server error
application/json
post
POST /intents/{intentId}/execute HTTP/1.1
Host: api.everclear.org
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "domain": "text"
}
{
  "to": "text",
  "from": "text",
  "nonce": "text",
  "gasLimit": "text",
  "gasPrice": "text",
  "data": "Ynl0ZXM=",
  "value": "text",
  "chainId": 1,
  "type": 1,
  "accessList": [
    {
      "address": "text",
      "storageKeys": [
        "text"
      ]
    }
  ],
  "maxPriorityFeePerGas": "text",
  "maxFeePerGas": "text",
  "customData": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "ccipReadEnabled": true
}

Get quote for a route, including fees and limits

post
Body
originstringRequired
destinationsstring[]Required
inputAssetstringRequired
amountstringRequired
tostringOptional
Responses
200
Successfully retrieved quote.
application/json
400
Invalid request parameters.
500
Internal server error.
post
POST /routes/quotes HTTP/1.1
Host: api.everclear.org
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "origin": "text",
  "destinations": [
    "text"
  ],
  "inputAsset": "text",
  "amount": "text",
  "to": "text"
}
{
  "fixedFeeUnits": "text",
  "variableFeeBps": 1,
  "totalFeeBps": 1,
  "expectedAmount": "text",
  "currentLimit": "text"
}

Get current limits for a route

post
Body
originstringRequired
destinationsstring[]Required
inputAssetstringRequired
Responses
200
Successfully retrieved limits.
application/json
400
Invalid request parameters.
500
Internal server error.
post
POST /routes/limits HTTP/1.1
Host: api.everclear.org
Content-Type: application/json
Accept: */*
Content-Length: 61

{
  "origin": "text",
  "destinations": [
    "text"
  ],
  "inputAsset": "text"
}
{
  "currentLimit": "text"
}