跳转到内容

Execution API

Execution API 把一个代码和一个数量变成可执行的报价和一笔未签名的交易。流动性 来自 Robinhood Chain 上的 Uniswap v3 流动池,以 USDG 计价。

StockKit 是非托管的:它从不持有私钥、签名或提交交易。签名由你自己的钱包完成。

终端窗口
curl "https://api.stockkit.dev/v1/quote?symbol=NVDA&side=buy&amount=100&denom=usd"

参数:

  • symbol(必填):资产代码
  • side:buy 或 sell(默认 buy)
  • amount(必填):正数
  • denom:usd(amount 为美元金额)或 token(amount 为代币数量); 默认 usd

API 会探测所有费率档位,并返回最优的可执行路径:

{
"symbol": "NVDA",
"side": "buy",
"mode": "exactIn",
"feeTier": 500,
"usdAmount": "100.000000",
"tokenAmount": "0.432324841419642912",
"effectivePricePerToken": "231.307550",
"gasEstimate": "111339",
"venue": "uniswap-v3",
"pair": "TOKEN/USDG"
}

当没有流动池能够成交时,返回 422 no_liquidity。

终端窗口
curl -X POST https://api.stockkit.dev/v1/trade/build \
-H "content-type: application/json" \
-d '{
"symbol": "NVDA",
"side": "buy",
"amount": "100",
"denom": "usd",
"recipient": "0xYourWalletAddress",
"slippageBps": 50
}'

请求体字段:symbol、side、amount、denom 同上,另外还有:

  • recipient(必填):负责签名并接收产出的钱包
  • slippageBps:最大滑点,单位为基点,范围 1 到 5000(默认 50)

响应:

{
"chainId": 4663,
"quote": { "feeTier": 500, "usdAmount": "100.000000", "tokenAmount": "0.432..." },
"slippageBps": 50,
"deadline": 1788621105,
"steps": [
{
"description": "Approve SwapRouter02 to spend 100 of 0x5fc5...",
"to": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
"data": "0x095ea7b3...",
"value": "0"
},
{
"description": "Swap via Uniswap v3 0.05% pool",
"to": "0xcaf681a66d020601342297493863e78c959e5cb2",
"data": "0x04e45aaf...",
"value": "0"
}
]
}

只有当 recipient 当前的授权额度不足时,才会出现授权步骤。滑点上限已经编码进 兑换的 calldata(amountOutMinimum 或 amountInMaximum)。从 recipient 钱包 按顺序提交这些步骤即可。