360 Secure SkillHub
360 安全技能中心

sato-kit

该 Skill 使用 Sato Kit CLI 将链上操作分为准备与执行:读取链上状态、获取兑换报价、构建兑换或 x402 支付意图,运行策略预检与模拟,并在人工确认 intent_id 后交给签名器,同时记录回执。默认使用分叉网络,需 Node.js 20+ 与网络访问。

satohubai
satohubai
热度 7.64
最近更新 2026-10-02 09:32:01
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:财务 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add sato-kit
Metadata
name
sato-kit
description
Prepare and execute onchain agent actions (chain reads, swap quotes, swaps, x402 payments) through the Sato Kit CLI with a policy pre-flight, simulation and a receipt log. Use when an agent needs to read chain state, quote or build a swap, or prepare an x402 payment and hand it to a signer only after a person has seen the summary. Fork network by default.
version
0.1.1
compatibility
Requires Node.js 20 or later and npx. Network access to an EVM RPC (fork by default) and to the swap venue the caller chooses.
metadata
{"version":"0.1.1","homepage":"https://satohub.ai","openclaw":{"requires":{"bins":["node","npx"],"env":[]}}}

Sato Kit

Sato Kit turns an onchain action into two steps: prepare builds an unsigned intent, runs the policy pre-flight and simulates it; execute takes only that intent_id and hands it to the configured signer. The pre-flight explains refusals. The signer is what enforces limits.

Every command below prints JSON with --json. Exit code 0 = ok, 2 = refused by policy, 1 = error.

Rules for the agent

  1. The network is fork unless policy.json says otherwise. Do not change it to mainnet on your own; mainnet needs the person's explicit opt-in in their policy file.
  2. Always prepare first. Show the person the intent's summary, fee_disclosure, simulation and policy verbatim.
  3. Run execute only after the person has approved that exact intent_id. Never execute an intent you did not just show them, and never invent or edit an intent id.
  4. If prepare returns policy.ok: false, report each refusal (rule, limit, observed) and stop. Do not retry with changed numbers to get around a rule.
  5. A USD value marked unknown stays unknown. Do not estimate one.

Commands

Read (no signature, no funds move):

npx -y @satohub/kit@0.1 read chain.read --input '{"chain":"base-sepolia","kind":"native_balance","address":"0x..."}' --json
npx -y @satohub/kit@0.1 read swap.quote --input '{"chain":"base","sell_token":"0x...","buy_token":"0x...","sell_amount":"1000000"}' --json

Prepare (builds an intent; nothing is signed):

npx -y @satohub/kit@0.1 prepare swap.prepare --input '{"chain":"base","sell_token":"0x...","buy_token":"0x...","sell_amount":"1000000","taker":"0x..."}' --json
npx -y @satohub/kit@0.1 prepare x402.prepare --input '{"url":"https://...","max_amount_base_units":"10000"}' --json

Execute (only after approval; takes the intent id and nothing else):

npx -y @satohub/kit@0.1 execute --intent si_... --json

Check the setup:

npx -y @satohub/kit@0.1 doctor --json

Action names accept either the ODA id (swap.prepare) or the tool name (swap_prepare).

Configuration

  • ./policy.json (or --policy <file>): the sato.policy/v1 file the pre-flight reads.
  • ./.sato/: intents, the intent key and receipts.jsonl. Keep .sato/ out of version control.
  • RPC: SATO_RPC_URL_<CHAIN> (for example SATO_RPC_URL_BASE_SEPOLIA) or --rpc <url>. Optional; without one the kit uses the fork endpoint.

Swaps

Any venue is accepted. sato is the labelled default and its fee sentence is returned verbatim in fee_disclosure, with a quote carrying no Sato fee alongside. venue: "direct" never contacts Sato.

As an MCP server

npx -y @satohub/kit@0.1 mcp starts a local stdio MCP server with the same tools.