メインコンテンツへスキップ
POST
/
trade
/
swap
Execute trade via aggregator (EVM + Solana)
curl --request POST \
  --url https://api.afkcrypto.com/v1/trade/swap \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "chain": "<string>",
  "from": "<string>",
  "fromToken": "<string>",
  "toToken": "<string>",
  "amount": "<string>",
  "slippage": 1,
  "includeGas": true,
  "protocols": "<string>",
  "excludeProtocols": "<string>"
}'
{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://solscan.io/tx/...", "chainName": "Solana" }
ネイティブ資産(ETH、SOL など)のスワップには fromToken/toTokenNATIVE キーワードを使用してください。Idempotency-Key ヘッダーが必要です。Solana メインネットのみ。EVM の場合、allowance エラーでスワップが失敗した場合は先にトークンを承認してください。
{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://solscan.io/tx/...", "chainName": "Solana" }

Authorizations

x-api-key
string
header
required

Headers

Idempotency-Key
string<uuid>
required

Provide a unique Idempotency-Key per user to ensure single submission.

Body

application/json
  • EVM
  • Solana
chain
string
required

EVM chain slug.

fromToken
string
required

Token or native address (0xEeee... for native)

toToken
string
required

Output token address (0x...).

amount
string
required

Amount in wei (decimal or 0x-hex supported for EVM).

from
string | null

Optional sender wallet; defaults to user's default wallet for the chain.

slippage
number
default:1

Percentage (e.g., 1 = 1%). Optional; defaults to 1%.

includeGas
boolean | null

Include gas estimates in the build (optional).

protocols
string | null

Comma-separated allowlist of protocols (optional).

excludeProtocols
string | null

Comma-separated blocklist of protocols (optional).

Response

Submission accepted

id
string
required

AFK transaction id for the submitted action.

status
enum<string>
required

Submission status.

利用可能なオプション:
SUBMITTED
hash
string | null
required

On-chain transaction hash/signature (may be null at submission time).

explorerUrl
string | null
required

Direct link to the transaction on a chain explorer. Null until a hash/signature exists.

chainName
string
required

Human-readable chain name for display (e.g., Base, Ethereum, Solana).