跳转到内容
中文

开发者

API 指南

使用 Ora API 买入和卖出、运行策略以及发射代币。

本页的示例使用 Ora API 页面中的 ora() 客户端。

一次交易会在你某个代币的多个钱包上执行。每个钱包的交易都是一笔独立的交易,并且彼此错开,确保不会有两笔落在同一个区块中。

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(买入),手动买入或卖出只会使用剩余部分。

发射一个代币,就是依次发起应用部署表单所发起的同一组调用:

  1. POST /upload/{protocol}:上传名称、符号、图片和链接。返回代币信息 ID。
  2. POST /engine/deploy/plan:根据你的设置获取钱包布局和完整的成本预估。
  3. POST /engine/prepare:根据该方案创建代币及其钱包。返回 mint。
  4. POST /engine/fund:返回需要由你的钱包签名的注资交易(参见需要你签名的交易)。发送这些交易,然后调用 POST /engine/fund/confirm。
  5. POST /engine/launch,并带上 { "mint": "…" }。发射在 Ora 一侧执行。
  6. GET /engine/tokens/{mint}/stream:实时跟踪发射过程。

prepare 的请求体包含部署表单的所有选项(发射平台、配对资产、分层、发射平台专属设置),因此很长。最简单的做法是先在应用中配置好一次发射,然后照着它来写。如需任何路由的当前 schema,请向 Ora 支持团队索取。