treasures について
Treasures Finance Agent Skillsは、Treasures APIを使うエージェントや委任ウォレットを操作するコーディングエージェント向けのMarkdownガイド集です。トークン化株式の取引、チェーン間のUSDC移動、署名手順や運用上の制約を扱います。
主な機能
- 01Treasures B2B APIの利用ガイド
- 02委任ウォレットの操作手順
- 03トークン化株式の検索と取引
- 04SolanaとEthereum間のUSDCブリッジ
- 05残高・ポートフォリオ・取引履歴の参照
活用シーン
- 01Treasures APIを使う金融エージェントの構築
- 02委任ウォレットでのトークン化株式取引
- 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 Skills です。
スキルとは、コーディングエージェントが必要に応じて読み込む、プレーン Markdown の指示(SKILL.md)をまとめたフォルダです。ここにあるスキルは、エージェントが Treasures の金融 API を正しく呼び出せるように教えます — トークン化された株式の検出、見積もりと取引の実行、チェーン間での USDC のブリッジ、委任ウォレットの操作、ポートフォリオの読み取り — これには、間違えやすい署名の詳細や落とし穴も含まれます。
スキルカタログ
| スキル | できること |
|---|---|
treasures-b2b-api(上流: treasures-io/treasures-finance-agent-skills) | Treasures の公開 B2B API 上でエージェントを構築します。トークン化された株式の検出、取引の見積もり/実行、Solana と Ethereum 間での USDC のブリッジ、単一のエンドユーザーウォレットペアのポートフォリオ + 取引履歴の読み取りを行います。エンドポイントの選択、所有権証明の署名(埋め込みウォレットを含む)、取引/ブリッジの実行、エラー処理をカバーします。 |
treasures-wallet(上流: treasures-io/treasures-finance-agent-skills) | HTTP 経由で Treasures の委任ウォレットを操作します。オンボーディング(ウォレットのプロビジョニング + スコープ付き API キーの発行)、見積もり、非同期の買い/売りの実行(ノンカストディアル — エージェントは一切署名せず、Treasures が RWA 取引に厳密にスコープされた委任署名者として署名します)、残高/ポートフォリオ/取引履歴の読み取り、API キーの管理を行います。Solana または Ethereum 上で、トークン化された株式(xStocks / Ondo)対 USDC を取引します。HTTPS と API キーだけで済み、web3 ライブラリ、キー、RPC は不要です。 |
⚠️ 取引を試みる前にこれを読んでください(2026-07-27 にライブ検証済み)
知らないと、2 つのことがサイレントに失敗します。どちらもドキュメントではなく、ライブ呼び出しで確認されたものです。
1. ベース URL にはパスのプレフィックスが必要
https://api.treasures.io だけでは、すべてのパスで 404 になります。同じホストから 2 つのプレーンが存在します:
| プレーン | ベース | 使用するもの |
|---|---|---|
| 公開 B2B | https://api.treasures.io/public/v1 | treasures-b2b-api(デフォルト) |
| 委任エージェント | https://api.treasures.io/api/v1 | treasures-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 になります)。 - ブロック: US(デフォルトの Starchild イーグレスは San Jose, CA)および GB。クリア: DE、NL、SE、CH、SG、HK、JP —
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 スキル(公式)。未インストールの場合はインストールしてください — 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
結果を信頼する前に出口を確認してください: 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 をバイパスしています。unset して、リクエストごとに proxies= を使用してください。 |
400 Bad Request: No region specified | プロキシ URL にリージョンのユーザー名がありません。 |
502 Unknown region | リージョンコードが sc-vpn の 18 のリストにありません。 |
401 ownership_proof_eth_invalid | geo の問題ではなく proof の問題です — 小文字のアドレス、新しい 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 は 70 以上のコーディングエージェント(Claude Code、Codex、Cursor、GitHub Copilot、Windsurf、Cline、OpenCode など)向けに SKILL.md ファイルを適切な場所へインストールし、どれが導入済みかを自動検出します。このリポジトリの skills/<name>/SKILL.md レイアウトを直接読み取るため、追加のセットアップは不要です。
-a で特定のエージェントを指定できます:
npx skills add treasures-io/treasures-finance-agent-skills -a claude-code -a codex -a cursor
ライセンス
MIT