Passer au contenu principal
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>",
  "fromToken": "<string>",
  "toToken": "<string>",
  "amount": "<string>",
  "from": "<string>",
  "slippage": 1,
  "includeGas": true,
  "protocols": "<string>",
  "excludeProtocols": "<string>"
}
'
{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://solscan.io/tx/...", "chainName": "Solana" }
Utilisez le mot-clé NATIVE pour fromToken/toToken pour échanger des actifs natifs (ETH, SOL, etc.). Nécessite l’en-tête Idempotency-Key. Solana mainnet uniquement. Pour EVM, approuvez d’abord le token si le swap échoue avec erreur d’allowance.
{ "id": "tx_...", "status": "SUBMITTED", "hash": "0x...", "explorerUrl": "https://solscan.io/tx/...", "chainName": "Solana" }

Autorisations

x-api-key
string
header
requis

En-têtes

Idempotency-Key
string<uuid>
requis

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

Corps

application/json
chain
string
requis

EVM chain slug.

fromToken
string
requis

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

toToken
string
requis

Output token address (0x...).

amount
string
requis

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
défaut: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).

Réponse

Submission accepted

id
string
requis

AFK transaction id for the submitted action.

status
enum<string>
requis

Submission status.

Options disponibles:
SUBMITTED
hash
string | null
requis

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

explorerUrl
string | null
requis

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

chainName
string
requis

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