POST /v1/aggregator/build
Build ready-to-sign calls
From a quote id or the action's params. Simulated on Arc in one batch and checked by the Fence and the security layer before it is returned; refuses (fail closed) on a deny, an unconfirmed confirm, a revert or any security block. format: transactions (EOA, Arc Memo + Multicall3From), calls (smart accounts) or eip5792 (wallet_sendCalls).
auth: public · scope: build · Idempotency-Key
Request body
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"transfer",
"swap",
"fx",
"bridge",
"deposit",
"withdraw",
"supply",
"borrow",
"repay",
"batch"
]
},
"quoteId": {
"type": "string",
"pattern": "^q_[A-Za-z0-9_-]{8,40}$"
},
"environment": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"taker": {
"type": "string"
},
"owner": {
"type": "string"
},
"tokenIn": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"tokenOut": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
},
"to": {
"type": "string"
},
"memo": {
"type": "string",
"maxLength": 256
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 20
},
"recipient": {
"type": "string"
},
"venue": {
"type": "string",
"maxLength": 80
},
"maxRisk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"collateral": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
}
},
"required": [
"token"
]
},
"minHealth": {
"type": "string",
"pattern": "^\\d{1,3}(?:\\.\\d{1,4})?$"
},
"actions": {
"type": "array",
"items": {},
"minItems": 1,
"maxItems": 12
},
"slippageBps": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"integratorFee": {
"type": "object",
"properties": {
"bps": {
"type": "integer",
"minimum": 0GET /v1/aggregator/quote
Swap quote from query parameters
Best route across every executable Arc venue, the alternatives it beat, price impact, gas in USDC, Lykia's fee, the integrator's fee and the Fence verdict. Returns a quote id to build from.
auth: public · scope: quote
| Parameter | In | Required |
|---|
kind | query | no |
environment | query | no |
tokenIn | query | yes |
tokenOut | query | yes |
amount | query | yes |
taker | query | yes |
slippageBps | query | no |
integratorFeeBps | query | no |
integratorFeeRecipient | query | no |
includeVenues | query | no |
excludeVenues | query | no |
split | query | no |
POST /v1/aggregator/quote
Quote any action
kind: transfer, swap, fx, bridge, deposit, withdraw, supply, borrow, repay or batch.
auth: public · scope: quote
Request body
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"transfer",
"swap",
"fx",
"bridge",
"deposit",
"withdraw",
"supply",
"borrow",
"repay",
"batch"
],
"default": "swap"
},
"environment": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"taker": {
"type": "string"
},
"owner": {
"type": "string"
},
"tokenIn": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"tokenOut": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
},
"to": {
"type": "string"
},
"memo": {
"type": "string",
"maxLength": 256
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 20
},
"recipient": {
"type": "string"
},
"venue": {
"type": "string",
"maxLength": 80
},
"maxRisk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"collateral": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
}
},
"required": [
"token"
]
},
"minHealth": {
"type": "string",
"pattern": "^\\d{1,3}(?:\\.\\d{1,4})?$"
},
"actions": {
"type": "array",
"items": {},
"minItems": 1,
"maxItems": 12
},
"slippageBps": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"integratorFee": {
"type": "object",
"properties": {
"bps": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"recipient": {
POST /v1/build/{kind}
Build one action type
transfer, swap, fx, bridge, deposit, withdraw, supply, borrow, repay or batch; same answer as POST /v1/aggregator/build.
auth: public · scope: build · Idempotency-Key
| Parameter | In | Required |
|---|
kind | path | yes |
Request body
{
"type": "object",
"properties": {
"quoteId": {
"type": "string",
"pattern": "^q_[A-Za-z0-9_-]{8,40}$"
},
"environment": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"taker": {
"type": "string"
},
"owner": {
"type": "string"
},
"tokenIn": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"tokenOut": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
},
"to": {
"type": "string"
},
"memo": {
"type": "string",
"maxLength": 256
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 20
},
"recipient": {
"type": "string"
},
"venue": {
"type": "string",
"maxLength": 80
},
"maxRisk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"collateral": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
}
},
"required": [
"token"
]
},
"minHealth": {
"type": "string",
"pattern": "^\\d{1,3}(?:\\.\\d{1,4})?$"
},
"actions": {
"type": "array",
"items": {},
"minItems": 1,
"maxItems": 12
},
"slippageBps": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"integratorFee": {
"type": "object",
"properties": {
"bps": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"recipient": {
"type": "string"
}
},
"required": [
"bps",
"recipient"
]
},
"venues": {
"type": "object",
"properties": {
POST /v1/quote/{kind}
Quote one action type
auth: public · scope: quote
| Parameter | In | Required |
|---|
kind | path | yes |
Request body
{
"type": "object",
"properties": {
"environment": {
"type": "string",
"enum": [
"mainnet",
"testnet"
]
},
"taker": {
"type": "string"
},
"owner": {
"type": "string"
},
"tokenIn": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"tokenOut": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
},
"to": {
"type": "string"
},
"memo": {
"type": "string",
"maxLength": 256
},
"destination": {
"type": "string",
"minLength": 2,
"maxLength": 20
},
"recipient": {
"type": "string"
},
"venue": {
"type": "string",
"maxLength": 80
},
"maxRisk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"collateral": {
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 2,
"maxLength": 12
},
"amount": {
"anyOf": [
{
"const": "all"
},
{
"type": "string",
"pattern": "^\\d{1,18}(?:\\.\\d{1,18})?$"
}
]
}
},
"required": [
"token"
]
},
"minHealth": {
"type": "string",
"pattern": "^\\d{1,3}(?:\\.\\d{1,4})?$"
},
"actions": {
"type": "array",
"items": {},
"minItems": 1,
"maxItems": 12
},
"slippageBps": {
"type": "integer",
"minimum": 0,
"maximum": 1000
},
"integratorFee": {
"type": "object",
"properties": {
"bps": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"recipient": {
"type": "string"
}
},
"required": [
"bps",
"recipient"
]
},
"venues": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"type": "string",