mcpField
T
treasures

treasures

github.com/starchild-ai-agent其他30237 次安装6 天前更新
代码仓库

关于 treasures

Treasures Finance Agent Skills 是一组面向编码 Agent 的 Markdown 指南,帮助其构建 Treasures API 代理或操作委托钱包。内容涵盖代币化股票交易、跨链 USDC、钱包与签名流程,并提示地理限制和常见错误。

主要功能

  1. 01Treasures B2B API 接入指南
  2. 02委托钱包操作指南
  3. 03发现代币化股票并交易
  4. 04跨 Solana 与 Ethereum 桥接 USDC
  5. 05读取余额、投资组合与交易记录

适用场景

  1. 01构建访问 Treasures API 的金融 Agent
  2. 02通过委托钱包执行股票代币买卖
  3. 03检查钱包持仓和交易历史

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/starchild-ai-agent/official-skills --skill treasures

安装后在 Claude Code 中输入/treasures确认已加载。

详细介绍

Treasures Finance Agent Skills

用于基于 Treasures 金融 API 构建 AI Agent 的 Agent Skills。

技能是一个包含纯 Markdown 指令(SKILL.md)的文件夹,编码 Agent 会按需加载这些指令。这里的技能教会 Agent 如何正确调用 Treasures 金融 API——发现代币化股票、报价并执行交易、跨链桥接 USDC、操作委托钱包,以及读取投资组合——并涵盖容易出错的签名细节和注意事项。

技能目录

技能功能
treasures-b2b-api(上游:treasures-io/treasures-finance-agent-skills)基于 Treasures 公共 B2B API 构建 Agent:发现代币化股票、报价并执行交易、在 Solana 和 Ethereum 之间桥接 USDC,以及读取单个终端用户钱包对的投资组合和交易历史。涵盖端点选择、所有权证明签名(包括嵌入式钱包)、交易/桥接执行和错误处理。
treasures-wallet(上游:treasures-io/treasures-finance-agent-skills)通过 HTTP 操作 Treasures 委托钱包:引导用户(配置钱包并生成限定范围的 API 密钥)、报价、执行异步买卖(非托管——Agent 从不签名;Treasures 作为委托签名者签名,权限严格限定于 RWA 交易)、读取余额/投资组合/交易历史,以及管理 API 密钥。通过 HTTPS 和 API 密钥即可在 Solana 或 Ethereum 上交易代币化股票(xStocks/Ondo)与 USDC——无需 web3 库、密钥或 RPC。

⚠️ 尝试任何交易前请阅读(已于 2026-07-27 实时验证)

如果不了解以下两点,都会导致请求静默失败。两者均通过实时调用确认,并非来自文档。

1. 基础 URL 需要路径前缀

单独使用 https://api.treasures.io 时,所有路径都会返回 404。同一主机上有两个平面:

平面基础 URL用途
公共 B2Bhttps://api.treasures.io/public/v1treasures-b2b-api(默认)
委托 Agenthttps://api.treasures.io/api/v1treasures-wallet
2. 负载均衡器会对交易路径进行地理围栏限制

读取请求在全球范围内开放;写入请求则不开放。

路径来自受限 IP 的结果
GET /stocks/*、/portfolio、/trades✅ 200
POST /quote/buy、/quote/sell、/bridge/quote、/trade/submit❌ 451 unavailable_for_legal_reasons
  • 限制位于 AWS 负载均衡器(server: awselb/2.0),匹配依据是路径 + 实际 TCP 来源 IP,发生在身份验证之前,也发生在应用之前。未知路径返回 404(而不是 451),交易路径上的 GET/OPTIONS 请求也会返回 451 → 受限的是路径,而不是写入方法。两个平面都受此限制——/api/v1/quote/sell 和 /public/v1/quote/sell 一样会返回 451。
  • 伪造地理位置请求头不起作用(X-Forwarded-For、CF-IPCountry、X-Real-IP、True-Client-IP 仍然都会返回 451)。
  • 受限地区: 美国(Starchild 的默认出口位于加利福尼亚州圣何塞)和英国。不受限地区: 德国、荷兰、瑞典、瑞士、新加坡、香港、日本——已通过 sc-vpn 技能使用逐请求代理(proxies=/curl -x)进行测试。切勿设置全局 HTTP_PROXY;这会破坏 sc-proxy 计费。

451 绝不是钱包、签名或委托问题。 在通过地理位置限制之前,不要排查签名问题。

/quote/sell 上的错误阶梯——告诉你请求被哪一层拒绝
451 unavailable_for_legal_reasons  → geo edge (change exit region)
400 invalid_request                → schema (fix the body)
401 ownership_proof_eth_invalid    → signature (re-sign the challenge)
422 holdings_insufficient          → auth OK, wallet just lacks the asset

请求到达 422,证明地理位置检查和签名都正常——这是最理想的失败情况。

资格要求——不可忽视

451 是按设计执行的资格规则,并非服务中断。Ondo/xStocks 代币化股票不向美国人士提供;此外,Ondo 还会在代币合约层执行 KYC/转让白名单检查,因此无资格的钱包无论出口 IP 显示什么,都会在链上遭到拒绝。在绕过地理围栏之前,请确认用户符合获准司法管辖区的资格要求。 为真正非美国用户解除地理位置限制没有问题;但不得利用此举规避证券限制。

如何通过 sc-vpn 路由交易调用

前提条件:sc-vpn skill(官方)。如果尚未安装,请运行 npx skills add Starchild-ai-agent/official-skills --skill sc-vpn --agent openclaw。无需凭据;仅限内部网络。健康检查:curl http://sc-vpn.internal:8081/health → {"status": "ok"}。

代理 URL 格式为 http://<region>:[email protected]:8080——用户名是地区代码。如果省略,则会收到 400 No region specified。

规则:读取请求直接访问,只有围栏标出的交易路径才通过 VPN。 所有请求都走隧道既慢又没必要——/stocks、/portfolio 和 /trades 从任何地方都能访问。

import requests, time
from core.skill_tools import wallet   # run from a dir where `core` is importable (e.g. /tmp or /data/workspace)

BASE = "https://api.treasures.io/public/v1"
VPN  = "http://de:[email protected]:8080"          # de | nl | se | ch | sg | hk | jp
PROX = {"http": VPN, "https": VPN}                  # per-request ONLY — never os.environ

ETH = "0x...".lower()                               # wallet address, lowercase

# READ — direct, no proxy
pf = requests.get(f"{BASE}/portfolio", params={"eth_wallet": ETH}, timeout=30).json()

# WRITE — through the VPN, with a signed ownership proof
issued    = int(time.time())
challenge = f"treasures-finance-quote-v1\n{issued}\n\n{ETH}"     # verified format; note the blank line
sig       = wallet.wallet_sign(challenge)["signature"]

body = {
    "ticker": "GOOGL", "chain": "eth",
    "amount_shares": "0.01", "max_slippage_bps": 100,
    "eth_wallet": ETH,
    "ownership_proof": {"issued_at": issued, "eth_signature": sig},
}
r = requests.post(f"{BASE}/quote/sell", json=body, proxies=PROX, timeout=60)
print(r.status_code, r.text)      # 422 holdings_insufficient = geo + signing both OK

在 bash 中执行效果相同:

curl -x "http://de:[email protected]:8080" \
     -X POST https://api.treasures.io/public/v1/quote/sell \
     -H 'content-type: application/json' -d @body.json

在信任结果前,确认出口 IP:curl -x "http://de:[email protected]:8080" https://ipinfo.io/json。

容易踩的坑

症状原因
通过 VPN 仍然返回 451该地区本身也被封锁了——GB 也在限制范围内。请使用 DE/NL/SE/CH/SG/HK/JP。
其他 API 开始全部返回 401你设置了全局 HTTP_PROXY,绕过了 sc-proxy。取消设置;对每个请求使用 proxies=。
400 Bad Request: No region specified代理 URL 中缺少地区用户名。
502 Unknown region地区代码不在 sc-vpn 的 18 个地区列表中。
401 ownership_proof_eth_invalid这是证明问题,不是地理位置问题——检查地址是否为小写、issued_at 是否为最新值,以及挑战字符串是否完全一致。

整个交易流程(/quote/* → /trade/submit,以及 /bridge/quote → bridge submit)都要使用同一出口地区。流程中途切换出口可能导致后端看到交易各阶段的来源不一致。

安装

# Install one sub-skill (recommended — pulls just what you need)
npx skills add treasures-io/treasures-finance-agent-skills --skill treasures-b2b-api
npx skills add treasures-io/treasures-finance-agent-skills --skill treasures-wallet

# Or install everything (auto-detects your environment and installs accordingly)
npx skills add treasures-io/treasures-finance-agent-skills

npx skills 会将 SKILL.md 文件安装到适用于 70 多种编码 Agent 的正确位置(Claude Code、Codex、Cursor、GitHub Copilot、Windsurf、Cline、OpenCode,……),并自动检测你已安装的 Agent。它会直接读取此仓库的 skills/<name>/SKILL.md 布局,因此无需额外设置。

使用 -a 指定目标 Agent:

npx skills add treasures-io/treasures-finance-agent-skills -a claude-code -a codex -a cursor

许可证

MIT

评论

支持 Markdown