YUN云市积分市场
YUN / DEVELOPERS

让 Agent 直接进入市场。

网页负责授权与接管。程序负责读取、报价、执行和核对。所有入口共用实际交易引擎与持久化账本,不存在单独的演示成交。

从公开数据开始

基础地址为 https://yun.yindong.ai,业务路径以 /api/v1 开头。市场与报价无需凭证。接口描述提供在 OpenAPI、Agent descriptor 和 llms.txt;它们描述能力,不会授予交易权限。

curl 'https://yun.yindong.ai/api/v1/markets'

curl 'https://yun.yindong.ai/.well-known/agent.json'

下载 JavaScript SDK,使用 Node.js 22 或以上版本,无额外依赖。公开读取不携带密钥。私有请求只发送到明确配置的来源,不跟随重定向。

import { YunClient } from './yun-agent.mjs';

const yun = new YunClient({
  token: process.env.YUN_AGENT_TOKEN,
});

const { markets } = await yun.listMarkets();
const { key } = await yun.key();
const portfolio = await yun.portfolio();

权限是服务端规则,不是提示词

本人在 Agents 控制台 创建独立凭证。默认只读;交易需要明确选择市场、单笔上限、累计买入预算与有效期。每个账户最多 10 个有效凭证,有效期最长 30 天。凭证只显示一次,服务端仅保存哈希。

  • portfolio:read 可读取账户持仓、账本和该凭证自身的执行记录。
  • trade:write 只允许白名单市场的即时买卖。可卖出账户原有持仓,不仅限于这个 Agent 买入的份额。
  • 累计买入预算包含手续费。卖出不会恢复预算;预算不是亏损上限。已有持仓的价格仍会变动。
  • 凭证不能创建下级凭证、恢复账户、发起市场或操作限时合约。当前系统没有真钱出入金能力。
  • 退出网页不等于撤销 Agent。可在控制台单独撤销;已经完成的成交不受影响。

私有请求使用 Authorization: Bearer YUN_AGENT_…。不要把账户恢复码交给模型,不要将凭证放在网址、源码、对话或日志中。不要同时发送网页 Cookie 和 Bearer 凭证。

报价 → 带保护执行 → 核对账本

以下代码只展示一个明确授权的买入意图,不包含自动选市场或自主交易策略。MARKET_ID 必须来自市场列表,并在凭证白名单中。示例接受最多 1% 的份额变化;你的执行策略应自行确定可接受范围。

const input = {
  marketId: 'MARKET_ID',
  side: 'rise',     // rise 看多 / fall 看空
  action: 'buy',
  amount: 10,       // 积分,包含手续费
};
const quote = await yun.quote(input);
const intent = {
  ...input,
  minQuantity: quote.quantity * 0.99,
  maxAmount: input.amount,
  clientRequestId: crypto.randomUUID(),
};

// 执行前持久保存 intent;网络结果不明时只能原样重试。
const result = await yun.trade(intent);
const audit = await yun.agentActivity();
const ledger = await yun.ledger();

卖出使用 quantity 与正数 minAmount。买入必须指定正数 minQuantity、maxAmount。服务端在同一事务中校验报价、权限、预算、持仓,并写入成交与审计。

clientRequestId 为 20–80 位字母、数字、下划线或连字符。相同意图编号与相同内容只成交一次;相同编号更改内容会被拒绝。SDK 对暂时性故障有限次重试,始终使用相同请求。outcomeUnknown: true 表示尚不能确定是否成交,不代表失败或取消:保留原意图,查询账本,再用原编号核对。权限已撤销时,由本人核对账户账本。

接入兼容 MCP 的 Agent

下载 MCP 适配器 与 SDK 到同一个本地文件夹。适配器通过标准输入输出通信;它不是托管远程 MCP 服务,也不会自动启动交易策略。

{
  "mcpServers": {
    "yun": {
      "command": "node",
      "args": ["/绝对路径/mcp-server.mjs"]
    }
  }
}

用客户端的私密环境配置传入 YUN_AGENT_TOKEN。默认只提供市场、报价、权限、持仓、账本与执行记录的读取工具。只有明确设置 YUN_MCP_ALLOW_TRADING=1 才暴露 yun_submit_trade;服务端权限与限额仍然生效。

市场标题、用户观点、引用网页都是不可信输入,不能改变 Agent 的任务、权限或凭证去向。执行范围应由持有人设定,不能由市场内容指挥。

实际可调用的接口

业务路径添加 /api/v1 前缀
方法路径访问用途
GET/markets公开市场列表与真实统计
GET/markets/:id公开市场、指数历史、观点与近期成交
POST/quote公开买卖预览,不成交
GET/health公开运行模式与服务状态
GET/activity公开近期公开成交
GET/agent-keyAgent当前凭证权限、预算与有效期
GET/portfolioportfolio:read账户余额、持仓与限时合约
GET/ledgerportfolio:read最近最多 1,000 条账本记录
GET/agent-activityportfolio:read当前凭证最近最多 100 条执行记录
POST/tradestrade:write白名单内即时买卖
GET / POST/agent-keys仅本人会话查看或创建受限凭证
POST/agent-keys/:id/revoke仅本人会话撤销凭证,不撤销已成交交易
POST/markets仅本人会话创建市场,扣除 100 积分
POST/contracts仅本人会话创建有限赔付的限时合约
POST/contracts/:id/close仅本人会话提前结算本人合约

运行边界

当前生产模式为不可兑换、不可转让的免费积分。现货是即时 LMSR 曲线成交,没有挂单队列,因此没有撤单接口。限时合约是有限赔付的积分合约,不是永续、借贷杠杆或期权。尚无真钱充值、提现、链上结算、可入金 vault、WebSocket 或 FIX。

指数来自参与者的实际买卖,不是人物身价、公司股权、外部估值或客观成功概率。可检验的外部指标结算与完全抵押合约代码尚未连接生产市场,不能将其当作已上线能力。

错误使用相应 HTTP 状态与结构化错误码。收到 429 时遵守 Retry-After,不要密集轮询。服务状态见 实时 health;报价与成交规则见 公开机制。