开发者
API 指南
使用 Ora API 买入和卖出、运行策略以及发射代币。
本页的示例使用 Ora API 页面中的 ora() 客户端。
一次交易会在你某个代币的多个钱包上执行。每个钱包的交易都是一笔独立的交易,并且彼此错开,确保不会有两笔落在同一个区块中。
1. 读取你的持仓
Section titled “1. 读取你的持仓”GET /engine/token/{address}/positions 会列出每个钱包及其代币余额(原始单位)、SOL 和 PnL。你可以挑选要操作的钱包,也可以交给 Ora 选择。
POST /engine/token/{address}/position/sell
const sale = await ora('POST', `/engine/token/${mint}/position/sell`, { amountToken: '250000000000', // raw units, string; 250,000 tokens at 6 decimals distribution: 'split', // split | each | concentrate (default) slippage: 10, // percent, optional // walletAddresses: ['…'], // optional; default: every holding wallet of the final layer // maxDelay: 4000, // ms of jitter between wallets; must be > 0 with several named wallets});// sale.results → [{ walletAddress, status: 'submitted' | 'failed', signature?, error? }]// sale.summary → { requested, filled, shortfall } (raw token units, strings)split 按每个钱包的持仓比例分摊数量,each 从每个钱包取相同的数量,concentrate 则使用数量最少、持仓最大的钱包。如果请求的数量超过你的持仓,会卖出现有的全部,并把剩余部分报告为 shortfall。
POST /engine/token/{address}/position/buy
const buy = await ora('POST', `/engine/token/${mint}/position/buy`, { amountSol: 0.5, // total to spend, in SOL (the chain's gas asset) distribution: 'each', slippage: 10,});// buy.summary is in lamports: { requested, filled, shortfall }两者都接受 priorityFee 和 bribeFee(以 SOL 计),用于覆盖默认费用。如需紧急全部退出,POST /engine/token/{address}/position/nuke 会一次性卖出所有持仓。
策略会在你的脚本离线时替你交易。Limit 卖出策略会在代币市值达到目标时触发:
POST /engine/strategies/limit-sells
await ora('POST', '/engine/strategies/limit-sells', { mint, strategies: [{ triggerMarketCapUsd: 250000, sellTokens: '100000000000', // raw token units to sell when it fires wallets: [walletA, walletB], // which of the token's wallets sell durationSeconds: 86400, // optional expiry; omit to keep it until it fires }],});Mirror 卖出策略(/engine/strategies/mirror-sells,在其他钱包买入时卖出)和 TWAP 卖出策略(/engine/strategies/twap-sells,随时间分批卖出)也采用同样的结构。每个策略都可以列出、用 PATCH 编辑、启用、停用和删除;GET /engine/strategies?mint=… 会列出某个代币的所有策略。策略页面说明了每种类型的运作方式。
每种策略也都可以反向运行:它们就是应用中的 Mirror Buy、TWAP Buy 和 Limit Buy。创建策略时传入 side: 'buy',它就会用钱包自己的配对资产买入代币:SOL 或 ETH;如果该发射有配对代币,则使用该配对代币。方向在创建时确定,之后无法更改。不传该字段时,策略为卖出。
await ora('POST', '/engine/strategies/limit-sells', { mint, strategies: [{ side: 'buy', triggerMarketCapUsd: 80000, // buys once the market cap drops to this sellTokens: '500000000', // quote to spend, in base units (here 0.5 SOL) wallets: [walletA], }],});字段名称保持不变,但在买入策略中,所有数量都以配对资产的最小单位表示:
| 策略 | side: 'buy' 的作用 |
|---|---|
| Mirror | 用买入回应其他钱包的 卖出。sellTokens 是配对资产预算,tokensPerSellMin 是每次买入的最小配对资产数量。 |
| TWAP | 在持续时间内花费 targetTokens 数量的配对资产。 |
| Limit | 当市值 跌至 triggerMarketCapUsd 时触发,并花费 sellTokens 数量的配对资产。 |
你读取到的每个策略都带有 side 和 executedAmount:即到目前为止已卖出的代币数量,或已花费的配对资产数量。运行中的策略会预留它仍可能花费的部分。GET /engine/token/{address}/positions 会按钱包将其报告为 lockedTokens(卖出)和 lockedQuote(买入),手动买入或卖出只会使用剩余部分。
发射一个代币,就是依次发起应用部署表单所发起的同一组调用:
POST /upload/{protocol}:上传名称、符号、图片和链接。返回代币信息 ID。POST /engine/deploy/plan:根据你的设置获取钱包布局和完整的成本预估。POST /engine/prepare:根据该方案创建代币及其钱包。返回 mint。POST /engine/fund:返回需要由你的钱包签名的注资交易(参见需要你签名的交易)。发送这些交易,然后调用POST /engine/fund/confirm。POST /engine/launch,并带上{ "mint": "…" }。发射在 Ora 一侧执行。GET /engine/tokens/{mint}/stream:实时跟踪发射过程。
prepare 的请求体包含部署表单的所有选项(发射平台、配对资产、分层、发射平台专属设置),因此很长。最简单的做法是先在应用中配置好一次发射,然后照着它来写。如需任何路由的当前 schema,请向 Ora 支持团队索取。