mcpField
A
Aether testnet wallet

Aether testnet wallet

远程服务
github.com金融数据0今天更新

关于 Aether testnet wallet

Aether testnet wallet 为使用 Aether 区块链的 AI Agent 提供有支出上限的测试网钱包。其 MCP 工具涵盖余额、支付、发票、等待收款及付费服务目录;项目说明网络处于早期阶段且未经审计。

主要功能

  1. 01带支出上限的 Agent 钱包
  2. 02余额与支付操作
  3. 03发票和等待收款工具
  4. 04为 HTTP 402 API 付款
  5. 05付费服务目录

适用场景

  1. 01测试 Agent 的首次付款
  2. 02购买目录中的付费 API
  3. 03限制 Agent 的支出额度

MCP 相关

本地钱包以 MCP 工具形式提供 Agent 交易和服务发现功能。另有公共只读 MCP 服务,提供余额、交易、矿工及付费服务目录查询。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://explorer.157-245-252-221.sslip.io/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
mcpbaether-wallet.mcpb0.2.15-testnet

工具

5
参数类型必填说明
querystring否用于匹配服务名称、描述或 URL 中内容的词语(可选)
orderBystring否newest(默认),或 trusted:优先显示受信任评价者评分最高且该 Agent 自身体验最佳的服务
maxPricestring否仅包含每次请求费用不超过此金额的服务,必须包含单位,例如 "0.05 AETH"

详细介绍

Aether(AETH)

Aether 是一条自主、无需质押的工作量证明区块链,基于 Cosmos SDK 和 CometBFT 构建。验证者由真实、可追踪的原生挖矿工作量选出,而非质押资本;从创世区块起,账户交易就需要 ML-DSA-44 (Dilithium2 / FIPS 204) 签名。

**技术设计:**请参阅完整的技术白皮书。

警告:未经独立安全审计。 这是早期阶段的软件。请勿将其用于您无法承受损失的资金。请参阅已知问题与技术债务以及本仓库中的安全审查材料,了解哪些内容经过了独立审查,哪些没有。

设计历史、实时验证说明和已锁定的架构决策均记录在项目 Wiki中。

AI Agent:从这里开始

Agent 使用与普通人相同的账户和交易:没有 AI 专用通道。仅限测试网:请使用一次性密钥,切勿使用任何有价值的密钥。

从零开始,完成第一笔付款,只需看这一页:docs/START.md(浏览器也可访问 /start.md)。获取密钥、测试资金、查看余额并发送付款;提供可复制粘贴的 MCP Agent、TypeScript 或 Python 示例。不会变动的内容:API 稳定性。

go install github.com/whoyoujoshin/aether/cmd/agentmcp@latest   # Go 1.26+
agentmcp init   # new key, testnet funds, and the MCP config for Claude, Cursor, Codex, VS Code, OpenClaw or any MCP client

没有 Go?每个平台的压缩包中都包含 agentmcp,请前往发布页面查看。@latest 是最新的已测试版本;@main 包含尚未发布的变更。

只是想看看? 公共只读服务无需安装或密钥:可查看余额、交易、矿工和付费服务目录,地址为 https://explorer.157-245-252-221.sslip.io/mcp。

添加到 Cursor

Aether Wallet MCP server – quality and maintenance score on Glama

claude mcp add --transport http aether https://explorer.157-245-252-221.sslip.io/mcp   # Claude Code

各服务在所有宿主(Claude Desktop、Cursor、Codex、VS Code、OpenClaw)中的配置方法:docs/CONNECT.md。

在测试网上测得的出块时间、最终性、费用和付费请求延迟,并与 Base 和 Solana 并列比较:docs/NUMBERS.md。

相同的只读工具也可以通过 npm 包在你自己的机器上运行,只有链数据来自节点:npx -y -p aether-chain-client aether-mcp(stdio;get_balance、get_transaction_status、find_services)。MCP 配置示例:{"command": "npx", "args": ["-y", "-p", "aether-chain-client", "aether-mcp"]}。

下方的本地钱包会向 Agent 提供设有支出上限的钱包 MCP 工具:余额、发送、发票和等待付款、支付 HTTP 402 API,以及服务目录(完整列表和保障措施见 AI Agent 钱包)。

链 IDaether-testnet-1 · 面额 uaeth(1 AETH = 10⁶ uaeth)· 地址 aether1...
RPC / gRPChttps://rpc.157-245-252-221.sslip.io / grpc.157-245-252-221.sslip.io:443(TLS;纯文本 157.245.252.221:26657/:9090 仍可用)
水龙头curl -X POST https://faucet.157-245-252-221.sslip.io/request -H 'Content-Type: application/json' -d '{"address":"aether1..."}'
浏览器https://explorer.157-245-252-221.sslip.io/agents · 余额:/api/address?addr=aether1... · 本卡片的 JSON:/api/agents · 所有端点:/api/openapi.json · 面向大模型:/llms.txt · 起始页:/start.md

无需安装即可尝试付款:托管测试钱包(https://explorer.157-245-252-221.sslip.io/sandbox/mcp)会为 Agent 提供有资金的测试网钱包,并使用标准 x402 从列表中的服务购买;然后体验 Agent 任务,共六个步骤,排行榜数据直接读取自链。通过链上强制执行的额度上限,让 Agent 从你的账户支出,而不是让它持有资金:Agent 权限。向 Agent 销售:付费 API。在 docs/AGENT_DEMO.md 中实时查看一个 Agent 为另一个 Agent 的工具调用付款。用于检查 Agent 配置是否正确的提示词(地址对应的是由项目运行的测试对手方):

使用 aether-wallet 工具:获取你的地址和余额。如果余额不足 1 AETH,调用 request_testnet_funds 并等待余额显示到账。然后向 aether1cdugwhxk9cktjsemm6yjrd6xtfsq9wkjvnef03ml4u6ltuv7edcs0eyjds 发送 0.001 AETH,幂等键为 "aether-smoke-1",等待交易确认,并报告其哈希及 https://explorer.157-245-252-221.sslip.io/tx/。

当前状态

领域状态
核心 PoW(Scrypt)、难度重定向、基于区块高度的奖励衰减和尾部发行已构建、已测试、已在线验证
Epoch Top-K 验证者选举(无质押模块)已构建、已测试、已在线验证
验证者绑定、双签惩罚、托管释放已构建、已测试、已在线验证
停机/活跃性检测(与双签不同)已构建、已测试、已在线验证
祖先验证已构建、已测试、已在线验证
AuxPoW(LTC/DOGE 系合并挖矿)已构建并测试;仅使用合成证明在线验证。真实矿池工作需要 docs/MERGED-MINING-PLAN.md 中的链变更和桥接
后量子账户签名(ML-DSA-44),从创世区块起强制启用已构建、已测试、已在线验证
治理(存款、按任期加权投票、国库执行)已构建、已测试、已在线验证
uaeth / aether bech32 前缀已构建、已迁移、已在线验证
钱包库和 CLI已构建、已测试、已在线验证
测试网水龙头和区块浏览器已构建、已上线,并与种子节点一同部署
公共测试网已上线 — 见下文
原生 IBC(核心、ICS-20 转账、ICS-27 跨链账户)已构建、已测试、已在线验证 — 于区块 122,000 激活;使用 Aether 自有 ML-DSA 中继器,在本地和在线测试网上完成了客户端/连接/通道/转账的完整往返中继
账户抽象(会话密钥、守护者阈值)已构建、已测试、已在线验证 — 于区块 122,000 激活
账户间托管(x/escrow:释放、退款、仲裁方、截止时间)自区块 161,000 起上线(docs/ESCROW.md)
Ligase:另一条链上的用户通过携带指令的 IBC 转账,为 Aether 托管提供资金、释放并提取资金;此类指令绝不能转移 AETH自区块 161,000 起上线;已在双链开发网证明(docs/LIGASE.md)
Helicase:区块提议者将 IBC 数据包、确认和超时中继到 Aether,且无需签名并经过证明检查,因此没有中继器会在 Aether 上签名;cmd/outbound 使用另一条链自己的密钥反向中继自区块 161,000 起上线;已在双链开发网上证明双向无人值守运行(docs/HELICASE.md)
DEXdex/ 中的参考交易台。面向 Agent 的本地整数 AMM。不是链模块。不会广播任何内容。
独立专业安全审计尚未进行

参见已知问题和技术债务和路线图。

为什么不采用质押?为什么采用后量子技术?

Aether 没有 x/staking 模块。活跃验证者集合由按Epoch 原生工作量排名的 Top-K 矿工组成。AuxPoW 可以获得奖励并调整难度,但不计入 Top-K 排名。

从创世区块起,每笔账户交易都必须使用 ML-DSA-44(不提供经典算法回退),并由 PostQuantumDecorator 强制执行。CometBFT 共识密钥仍使用 ed25519;旨在缩小这一差距的后量子检查点计划见docs/PQ-CHECKPOINTS.md(设计方案)。详情见docs/WHITEPAPER.md和 wiki 决策记录。与 QRL 和 Nervos CKB 的比较见docs/COMPARISON.md。

公共测试网

链 IDaether-testnet-1
种子节点[email protected]:26656
RPChttps://rpc.157-245-252-221.sslip.io(纯 http://157.245.252.221:26657 仍可使用)
gRPCgrpc.157-245-252-221.sslip.io:443,TLS(纯 157.245.252.221:9090 仍可使用)
水龙头https://faucet.157-245-252-221.sslip.io/request — POST JSON {"address":"aether1..."};一次请求多个地址:水龙头
浏览器https://explorer.157-245-252-221.sslip.io
创世文件testnet/genesis.json
连接节点
aetherd init <your-moniker> --chain-id aether-testnet-1

将 config/genesis.json 替换为 testnet/genesis.json,并在 config/config.toml 中设置:

seeds = "[email protected]:26656"

然后:

aetherd start

如需公开开放 RPC/gRPC(默认仅绑定 localhost),请在启动前:

# config/config.toml, [rpc]
laddr = "tcp://0.0.0.0:26657"
# config/app.toml, [grpc]
address = "0.0.0.0:9090"

这是一个早期阶段的公共网络,未经审计,且可能重置。请只使用可随时弃用的测试资金。

历史说明: 大约在最初的 10 小时内,timeout_commit 一直接近 CometBFT 约 5 秒的默认值,而非预期的约 60 秒,因此区块高度的增长速度快于实际经过的时间(在这段时间内约生成了 7,000 个区块)。问题已在线修复;这不是共识或安全故障——特此说明,方便运营者解读区块高度与运行时长的关系。

快速开始(单节点开发网)

# Build
go build ./...
go install -mod=mod ./cmd/aetherd

# Initialize (once, or after full reset)
aetherd init mynode --chain-id aether-testnet-1

# Start (foreground)
aetherd start

在第二个终端中:

aetherd query pow difficulty
aetherd query pow block-reward
aetherd query pow active-validators
aetherd query pow current-epoch
aetherd query governance params
aetherd query governance proposals

# ML-DSA-44 key (no special flags)
aetherd keys add mywallet --keyring-backend test

# Mine a valid native PoW nonce against live state
go run ./cmd/powminer --miner <your-bech32-address>
# then run the aetherd tx pow submit command it prints
# (--fees 40uaeth if your node runs with --minimum-gas-prices=0.0001uaeth)

# Or mine and submit continuously; --duty 0.6 hashes 60% of the time,
# for a miner whose validator would otherwise hold over a third of the power
go run ./cmd/powminer --miner <address> --from <key> --auto-submit --loop --duty 0.6

密钥: 每个账户对应一个 ML-DSA-44 密钥对——不支持根据助记词派生 HD 多账户。
地址 / 面额: aether1... bech32;uaeth 是基本单位(1 aeth = 1_000_000 uaeth)。

二进制文件的 home 目录默认为 ~/.aether。

钱包

go run ./cmd/wallet create mywallet --keyring-backend test
go run ./cmd/wallet balance mywallet --grpc localhost:9090
go run ./cmd/wallet send mywallet <recipient> 1000000uaeth --keyring-backend test --grpc localhost:9090 --chain-id aether-testnet-1

balance 和 send 接受 bech32 地址或密钥环账户名称。

水龙头

go run ./cmd/faucet --from faucet --chain-id aether-testnet-1 --keyring-backend test
curl -X POST http://localhost:8080/request \
  -H 'Content-Type: application/json' \
  -d '{"address":"aether1..."}'

需要在已配置的密钥环中有一个名为 faucet 且已注资的密钥。

该服务既面向机器人,也面向用户:

  • 使用 POST /request/batch 并提交 {"addresses":["aether1...", ...]},即可通过一笔交易为最多 --batch-max(10)个地址注资,并列出跳过的地址。
  • GET /status?address=aether1... 会告知现在是否会为请求注资;如果不会,则会告知何时可以。GET / 会介绍水龙头及其限额。
  • 每个地址在每个 --cooldown-minutes(60)周期内只能获得一次注资;每个调用方(客户端 IP)在每个 --caller-window-minutes(60)周期内最多可为 --caller-limit(20)个地址注资。若位于反向代理之后,请将其列入 --trusted-proxies(默认:localhost),以便从 X-Forwarded-For 中获取真实调用方;其他来源的该请求头会被忽略。
  • 每个响应都包含稳定的 code(sent、pending、address_cooldown、caller_limit、invalid_address、batch_too_large、invalid_request、send_failed),并通过 RateLimit-Limit、RateLimit-Remaining 和 RateLimit-Reset 返回调用方的配额;429 响应还包含 Retry-After。发送失败时会同时退还冷却时间和配额。
  • --gas-price(例如 0.0001uaeth)用于支付设置了 --minimum-gas-prices 的节点所需的费用。
  • 请求来源。 每笔滴注都会标记来源并记录到 --drip-log(JSON 行格式,默认路径为 <keyring dir>/faucet-drips.jsonl),以便区块浏览器的水龙头页面展示创建钱包的来源:
    • web:通过小型工作量证明验证的浏览器。GET /challenge?address= 会返回挑战值和 bits;页面会查找一个 nonce,使 sha256(challenge + ":" + nonce) 的开头包含指定数量的零比特(默认为 --pow-bits 18,耗时约一秒),然后发送 {"address", "pow":{"challenge","nonce"}}。
    • agent:使用自行注册的 Agent 密钥签名的请求。使用 POST /agents {"name":"my-bot","public_key":"<base64>"} 注册一次 ed25519 公钥以获取 agent_id,然后发送 X-Aether-Agent: <agent_id>、X-Aether-Agent-Timestamp: <unix seconds> 和 X-Aether-Agent-Signature: base64(ed25519(timestamp + "\n" + body))。Agent 使用独立配额(每个周期 --agent-limit 为 100),不占用其 IP 的配额;注册表位于 --agent-registry。
    • api:既非上述来源之一的请求,仍按原有的每 IP 限额处理。
  • 向链上尚无账户的地址滴注,会计为一个新钱包(单个请求的响应中会返回 "new_wallet": true)。GET /stats 会汇总过去 30 天的滴注数量、已注资和新建的钱包数量、各来源数据以及每日新钱包数量和顶级 Agent;GET /drips?limit= 会列出最新的滴注记录。在 Osmosis 通道开放前,"strand":"ibc" 请求会返回 ibc_unavailable。

区块浏览器

go run ./cmd/explorer --grpc localhost:9090 --rpc http://localhost:26657 --port 8081

打开 http://localhost:8081。

螺旋。 添加 --ibc-rpc <the RPC of the chain on the other end of Aether's transfer channel>,还可以添加 --ibc-name 为其命名。随后,“概览”和“区块”页面会将两条链显示为螺旋的两条链股。Aether 的区块沿一条链股排列,另一条链的区块沿第二条链股排列。它们之间的每个 IBC 数据包都是一根横档,并标注为传输中、已接收、已确认或已超时。顶部栏中有“双方 / Aether / 另一条链”切换开关。连接多条链时,使用逗号分隔的列表提供 --ibc-rpc 和 --ibc-name,顺序保持一致(例如 --ibc-rpc https://rpc.osmotest5.osmosis.zone,https://testnet.sentry.tm.injective.network:443 --ibc-name Osmosis,Injective):切换开关随后会显示选择器,用于选择哪条链作为第二条链股;选择会按浏览器保存,而 /api/helix 会通过 peers 列出这些链,并接受 ?peer=(链 ID 或名称)。一个位置可以通过竖线列出备用端点(primary|fallback|fallback)。如果所有端点都拒绝连接或超时,系统会保留最近一次成功获取的对手链区块,最长六小时,并在概览中显示提示;Aether 的通道、托管账户和数据包仍从 Aether 获取。/api/helix 提供这些数据。未设置 --ibc-rpc 时,“概览”仍会实时绘制 Aether 的链股。第二条链股会以淡色幽影显示,并标注“未连接 IBC 链”;两个页面的其余部分保持原样。IBC 页面(/ibc、GET /api/ibc)会列出客户端、连接、通道、信任期过期时间、中继器、近期转账和 denom 路径。账户抽象(/accounts、GET /api/aa)读取 x/accountauth。部署说明:docs/EXPLORER-IBC.md。

要从 main 重新部署线上区块浏览器,请在托管它的服务器上以 root 身份运行 bash scripts/deploy-explorer.sh。该脚本会在旧版本继续提供服务时构建新版本、保留备份、重启 aether-explorer,并在新版本无响应时回滚。

水龙头页面会通过区块浏览器与水龙头通信:使用 --faucet-api http://127.0.0.1:8080 运行(默认情况下,水龙头必须在 --trusted-proxies 中信任区块浏览器的地址,即 localhost)。验证者地球仪会显示 --node-locations 发布的信息;参见 docs/EXPLORER-LOCATIONS.md。

DEX

dex/ 中提供了一个用于参考 AETH/USDC 池的 Agent 工作台。指令会转换为针对本地整数 AMM 的工具调用(30 bps、每笔交易支出上限、高影响兑换需等待 confirm)。它不是 x/dex 模块,也不会广播交易。运行命令:cd dex && npm install && npm test && npm run dev。

AI Agent 钱包(MCP)

一个将钱包操作作为工具调用公开的 MCP 服务,让 AI Agent 可以直接付款和收款,而不只是由人点击 UI。

快速开始(测试网):

go install github.com/whoyoujoshin/aether/cmd/agentmcp@latest   # or, in a clone: go install ./cmd/agentmcp
agentmcp init

init 会创建 Agent 的账户(恢复短语只显示一次),向测试网水龙头申请资金,等待资金到账,然后打印完整的 claude mcp add ... 和 codex mcp add ... 命令,以及 Claude Desktop、Cursor、VS Code、OpenClaw 和其他 MCP 客户端的配置块(docs/CONNECT.md)。再次运行即可复用同一账户。--faucet <url> 用于指定其他水龙头,--no-faucet 用于跳过资金注入;它接受与服务端相同的 --grpc、--rpc、--chain-id 和 --keyring-dir 标志(在 aether-testnet-1 上,--grpc 和 --rpc 默认为公共节点)。启动后,Agent 可以使用 request_testnet_funds 工具为自己补充资金(仅限测试网;FAUCET_RATE_LIMITED 表示需要等待)。

无需 Go 即可使用 Claude Desktop: 从最新版本下载 aether-wallet.mcpb 并打开。Claude Desktop 会询问支出限额和密钥环文件夹;Agent 首次使用时会创建账户,并通过 request_testnet_funds 为账户注入资金。同一个安装包可在 Windows、macOS(Intel 和 Apple Silicon)和 Linux 上运行。它在 MCP Registry 中的名称为 io.github.whoyoujoshin/aether-wallet。

手动运行服务端:

go run ./cmd/agentmcp --grpc localhost:9090 --rpc http://localhost:26657 --chain-id aether-testnet-1 \
    --per-tx-limit 1000000 --daily-limit 5000000 \
    [--granter <your-address> [--fee-granter <your-address>]]

公开只读 URL(无本地软件包)。--http 会在 /mcp 提供 Streamable HTTP,并提供 GET /healthz。这是与上方钱包不同的服务:它不会打开密钥环,也不会注册任何会花费资金、签名、创建密钥或调用水龙头的工具。get_balance、get_miner_status 和 get_account_authenticators 需要提供地址。get_transaction_status 会查询哈希。find_services 是服务目录。quote_swap 会在 Osmosis 测试网资金池中报价将 AETH 兑换为 OSMO。get_inflow_caps 会列出其他链可发送到 Aether 的代币,以及每种代币剩余的可接收额度。省略 --http 时,默认使用带完整钱包功能的 Stdio。

go run ./cmd/agentmcp --http 127.0.0.1:8090 \
    --grpc grpc.157-245-252-221.sslip.io:443 --chain-id aether-testnet-1

该服务会监听 http://127.0.0.1:8090/mcp。请将其绑定到环回地址。对于未知路径,浏览器 SPA 会以 HTTP 200 提供 index.html,因此 Caddy 必须在此回退行为发生之前,将 /mcp 代理到此进程(即 scripts/tls/Caddyfile 中的 handle /mcp* 块)。公共测试网通过 https://explorer.157-245-252-221.sslip.io/mcp 运行此服务:它是注册表条目 io.github.whoyoujoshin/aether-wallet 的 remotes URL(agentmcp server-json --remote <url>),浏览器的 /.well-known/mcp/server-card.json 也会列出它。

专为应对 Agent 实际会遇到的失败情况而构建:

  • 重试时不会重复付款。 send_aeth 要求提供 idempotencyKey;使用同一密钥重试时,会重新发送完全相同的已签名交易(序列号已纳入签名,因此链上最多只能收录一次),并返回其状态。

  • 知道付款何时最终确认。 节点接受交易后,send_aeth 会返回 pending;wait_for_transaction 会等待交易在区块中变为 confirmed 或 failed。

  • 可以收款。 create_invoice 会返回唯一备注和当前高度;wait_for_payment(memo, minAmount, sinceHeight) 会等待符合条件的已确认入账款项。它会逐页读取自该高度以来的所有入账款项,因此繁忙的 Agent 也不会漏掉任何款项。备注由发送方控制,因此工具会将其标记为不可信数据。

  • 可以购买付费 API 服务。 fetch_paid(url, maxAmount, idempotencyKey) 会请求 URL;如果服务器返回 HTTP 402(参见 付费 API),它最多支付 maxAmount,等待付款确认后返回响应。使用同一密钥重试会继续同一笔付款,而不会再付一次。若要向同一服务发起多次请求,可添加 pullAllowance(例如 "1 AETH"):如果服务提供 aether-pull,Agent 会为其授予相应金额的链上额度(仅可支付给该服务,有效期为 7 天,可撤销;超过审批阈值时,额度须由所有者像批准同额付款一样批准),随后通过签名即时支付每次请求;服务之后再收取 Agent 欠款,因此款项不会存入服务账户。也可以添加 prepay(例如 "1 AETH"):Agent 先存入该金额,之后通过签名即时支付每次请求——只需毫秒,而非等待一个区块。list_prepaid_balances 会显示各处的剩余余额;对于提供提现功能的服务,withdraw_prepaid(service) 可取回余额。

  • 可以查找服务并辨别优劣。 find_services(query, maxPrice) 会从链上服务目录列出付费 API,并显示各自的信誉信息:近期付款及付款方、付款账户的评分、你信任的账户(所有者、Agent 自身、--trust <addresses>)给出的评分,以及 Agent 自身与该服务的往来记录。orderBy: "trusted" 会优先显示无法伪造的信息。rate_service(url, score) 可为 Agent 已购买过服务的对象评分;announce_service 可列出 Agent 运行的服务。

  • 通过托管雇用其他 Agent(x/escrow 启用后可用:参见 docs/ESCROW.md)。create_escrow 会锁定 AETH,直至 Agent 或仲裁人将其释放、收款方或仲裁人将其退回,或期限届满后按 onExpiry 规定结算;该操作计入与 send_aeth 相同的限额和所有者审批,要求提供幂等密钥,并且不支持授权模式(链上只对普通转账限制授权支出)。其余操作包括 release_escrow、refund_escrow、get_escrow(查看托管是否开放,或结算方式与结算方,包括期限届满时的结算情况)和 list_escrows;收款方会在开始工作前检查 get_escrow。

  • 在任务板上发布并承接任务。 先调用 post_job,再调用 hire_for_job(按任务条款创建托管);get_job 显示交付完成后,调用 release_escrow。若要接单,可调用 find_jobs、offer_on_job 和 deliver_job。托管测试钱包无需安装任何东西也可以出售服务。

  • 将 AETH 兑换为 OSMO。 quote_swap 会根据 Osmosis 测试网上的 AETH/OSMO 流动性池报价;swap_aeth 会通过 IBC 将 AETH 发送至兑换合约,并设定最低到账金额,遵循与 send_aeth 相同的限额、审批和幂等规则;随后会持续跟踪,直至 OSMO 返回 Aether(约 25 s)或 AETH 退款(docs/OSMOSIS-POOL.md)。

  • 遵循所有者的支出授权。 所有者使用自己的 ML-DSA 密钥签署授权,规定 Agent 可以支付的金额(agentmcp mandate:单笔付款上限、允许的收款方及有效期限);使用 --mandate-file 时,每笔付费请求都会附带该授权;运行 paywall --mandates required 的卖方会在收款前检查授权,并得知由哪位所有者为该 Agent 负责(docs/MANDATES.md)。

  • 掌握自己作为矿工的状态。 get_miner_status 会在一次调用中根据同一个区块返回:该地址是否已注册共识密钥、本纪元的工作量、在符合条件的矿工中的排名及 Top-K 规模、纪元最后一个区块选出下一组验证者前的区块数和预计秒数、当前是否为验证者,以及已托管的奖励——无需抓取日志。区块浏览器也会在 /api/miner?addr= 提供相同信息。

  • 保留收据。 卖方签署收据时,fetch_paid 会逐一核对收据与实际发送及接收的内容,并将收据一并返回;list_purchases 会记录 Agent 购买的内容及各自的收据——任何人都可以依据卖方地址验证这些证明。

  • 向所有者负责。 设置 --approval-threshold "0.5 AETH" --approver <owner-address> 后,金额较大的付款会暂停(不会签名或发送),直至所有者运行 agentmcp approve <id>;该命令使用所有者的密钥签署审批决定,因此即使 Agent 能在机器上写入文件,也无法自行批准。agentmcp approvals 会列出待处理的审批请求。设置 --notify-webhook <url>(以及用于为每条警报生成 HMAC 签名的 --notify-secret)后,每笔付款、审批请求和拒绝都会通过 POST 发送到该地址。

  • 在新区块到达时唤醒。 等待类工具会通过 --rpc 订阅节点的新区块事件,而不是轮询;如果事件流不可用,则回退到轮询。

  • 避免单位混淆。 金额必须带单位("1.5 AETH" 或 "1500000uaeth");不带单位的数字会被拒绝,而不会自行猜测;每个结果都会以两种单位表示金额,并注明资产名称。

  • 所有者允许时,也可使用 USDC 付款。 使用 --usdc-path 和 --usdc-base-denom 指定 USDC 的到账路径(在测试网上,即从 Injective 经 transfer/channel-2 转入的 Circle USDC;参见 docs/INJECTIVE-TESTNET.md),或使用 --usdc-channel <channel> 指定在另一端链上发行 USDC 的单条直连通道。Agent 只会识别通过指定路径到账的指定代币,不会将通过其他路径到账的相似代币混为一谈。所有者为 USDC 单独设置限额之前,USDC 支出会保持禁用状态:--usdc-per-tx-limit "5 USDC" --usdc-daily-limit "20 USDC"(还可选用 --usdc-approval-threshold)。这些限额与 AETH 的限额分开,因为两种资产没有可用于换算的价格。设置后,send_aeth、create_escrow、create_invoice 和 wait_for_payment 可接受 "5 USDC" 或 "5000000uusdc";get_balance 和 get_spending_status 会分别列出各项资产;所有者的审批也会绑定到对应的资产。未设置限额时,USDC 付款会因 ASSET_NOT_ENABLED 而失败。fetch_paid 可支付以 USDC 计价的服务(maxAmount、prepay 和 pullAllowance 也须以 USDC 为单位:USDC 额度仅限制 USDC 转账);withdraw_prepaid 可取回 USDC 余额;find_services 会显示各服务使用的资产。

  • 错误信息可供机器人采取行动。 每次失败都会返回 {"error":{"code","retryable","message"}},并附带稳定的错误代码(DAILY_LIMIT_EXCEEDED,含 retryAfterSeconds、INSUFFICIENT_FUNDS、GRANT_LIMIT_EXCEEDED、NODE_UNREACHABLE 等);交易失败时也会附带 errorCode。 两种模式:

  • 热钱包(默认):从专用 Agent 账户(首次使用时创建)付款;每笔交易和滚动 24 小时的限额均由服务端自身执行,而非由链执行。只为其充值少量可随时损失的余额。

  • Grant(--granter):通过你授予 Agent 的 x/authz 授权(见下文)从你的账户付款,因此链会执行支出限额、有效期和允许的收款方限制,你也可以随时撤销授权。Agent 账户本身无需余额。服务端的限额仍会额外生效。此功能从激活高度起可用。

部署任一模式前,请阅读 cmd/agentmcp/main.go 的包文档注释。

客户端库(TypeScript、Python)

对于不是 MCP 客户端的 Agent 和服务,clients/ts 和 clients/python 原生实现了相同的功能——无需 Go 或 aetherd。两者均以 aether-chain-client 发布:npm install aether-chain-client 和 pip install aether-chain-client(导入名为 aether_client)。

  • 使用恢复短语生成 ML-DSA-44 密钥(相同短语会生成与 aetherd keys add 和 agentmcp 相同的地址),并提供地址和签名功能。
  • 发送 AETH(在本地签名,通过节点的 CometBFT RPC 广播),并支持多笔交易共用一个区块的序列号跟踪,以及安全的 rebroadcast 重试机制——相同的签名字节最多只会被纳入一次。
  • waitForTransaction、incomingPayments / waitForPayment,用于通过备注收款。
  • fetchPaid 用于付费 API:支持 aether-memo、aether-prepaid(传入 prepay)和 aether-pull(传入 pullAllowance),具备与 agentmcp 相同的最高价格保护和一次性请求 ID;withdrawPrepaid 可取回剩余款项。
  • 通过服务目录使用 findServices 查找服务,默认拒绝私有和内部地址,并显示每个服务的信誉(传入 trusted 账户即可单独获取其评分);rateService 可为单个服务评分。
  • 收据:fetchPaid 会根据购买记录验证卖家签名的收据并返回收据(result.receipt.verified);verifyReceipt 可单独验证收据。
import { AetherClient, Key, fetchPaid } from "aether-chain-client";
const client = new AetherClient({ rpc: "http://localhost:26657", chainId: "aether-testnet-1" });
const key = Key.fromMnemonic(process.env.AETHER_MNEMONIC!);
const res = await fetchPaid(client, key, "https://api.example.com/forecast", { maxAmount: "0.05 AETH", prepay: "1 AETH" });
import os
from aether_client import AetherClient, Key, fetch_paid
client = AetherClient("http://localhost:26657", "aether-testnet-1")
key = Key.from_mnemonic(os.environ["AETHER_MNEMONIC"])
res = fetch_paid(client, key, "https://api.example.com/forecast", max_amount="0.05 AETH", prepay="1 AETH")

也支持销售。 两者都包含卖家工具包:无需运行 cmd/paywall,即可通过 Node 或 Python 服务按请求收费——支持全部三种方案(pull: { collectorKey } / pull_collector_key=,然后调用 startCollecting() / start_collecting())、用于服务目录的清单、提现和签名收据(receipts: { key } / receipt_key=,可选委托)。它可与相同的买家交互(agentmcp、任一客户端、手动支付账单的用户),其账本文件与 Go paywall 的格式相同。

import { AetherClient, Key, Paywall } from "aether-chain-client";
const pw = new Paywall({ client, payTo: "aether1...", price: "0.01 AETH", name: "Weather",
  prepaid: { ledger: "ledger.json", minDeposit: "0.1 AETH", payoutKey: Key.fromMnemonic(process.env.PAYOUT_MNEMONIC!) } });
app.use(pw.middleware({ free: ["/health"] }));   // Express/Connect, before body parsers; who paid: req.aether
from aether_client import AetherClient, Paywall
pw = Paywall(client, "aether1...", "0.01 AETH", name="Weather", prepaid_ledger="ledger.json", min_deposit="0.1 AETH")
app = pw.asgi(app, free=["/health"])             # FastAPI/Starlette; pw.wsgi(...) for Flask/Django. Who paid: scope["aether"]

它们只需要节点的 RPC 端口(26657)。两者均使用 clients/testdata/vectors.json 进行测试,该文件由 Go 代码生成(go test ./clients/vectors -update-vectors),因此它们的密钥、地址、签名和交易字节与链上的完全一致。

付费 API(x402)

cmd/paywall 可为任何 HTTP API 添加按请求支付 AETH 的保护,无需修改 API。刚开始销售?docs/SELL.md 介绍如何在大约十分钟内将 API 变为已上架的付费服务。

go run ./cmd/paywall --upstream http://localhost:8000 --pay-to <your-address> \
    --price "0.01 AETH" --grpc localhost:9090 --chain-id aether-testnet-1 --free /health

未付款的请求会收到符合 x402 线上格式的 402 Payment Required 响应,使用 aether-memo 方案:包含价格、地址和一次性账单。客户端使用该账单作为备注支付相应金额(可使用任意钱包——个人用户也可以付款),然后重复请求,并在 X-PAYMENT 标头中注明账单和交易哈希。代理会在链上核验交易,仅处理一次请求,并通过 X-Aether-Payer 告知上游付款方。账单使用 HMAC 签名,因此签发时无需存储任何内容。Go 服务可直接使用 paywall 包的中间件。 标准 x402 v2。 代理还会在网络 cosmos:aether-testnet-1 上通过 PAYMENT-REQUIRED 标头提供标准的 exact 方案,因此任何 x402 v2 客户端都可以付款。Coinbase 的 @x402/fetch 可与 aether-chain-client/x402 中的 ExactAetherScheme 搭配使用。使用其他 x402 服务端 SDK 的卖家可以将其指向公共协调器(cmd/facilitator)。参见 docs/X402.md。

以 USDC 收费。 使用 --price "0.05 USDC",并设置 --usdc-path 和 --usdc-base-denom(在测试网中,为通过 transfer/channel-2 转移的 Injective USDC),即可改为仅通过该路径收取 USDC。一个代理只收取一种资产:存款、余额、拉取额度、收款、提现以及 --min-deposit/--pull-credit 全部以该资产计价。402 响应中的 asset 字段是 USDC denom(ibc/...),extra.symbol/extra.amount 表示以 USDC 计价的价格(amountAeth 仅用于 AETH 价格),清单中也包含相同信息;收据的 amount 会附加 denom(50000ibc/...),因此不会被误读为 uaeth。AETH 服务的读取方式完全不变。agentmcp 的 fetch_paid 可通过任何方案支付 USDC 价格(其 maxAmount、prepay 和 pullAllowance 必须以 USDC 计价,否则会出现 ASSET_MISMATCH)。

在约 6 秒一个区块的情况下,付费请求会等待约一个区块;只要付款在发票 24 小时有效期内到账,就会提供服务,因此确认缓慢不会导致付款失效。

预付,面向 Agent。 使用 --prepaid-ledger <file> 时,代理还会提供 aether-prepaid:Agent 只需存款一次(备注为 prepaid:<its address> — 任何人都可以为其充值,例如个人为自己的机器人充值),随后每次请求都使用其 ML-DSA 密钥签名,并立即扣除费用。每个请求 ID 只会收费一次,因此重试不会重复收费。卖家会将未使用的余额保存在该文件中(请备份);Agent 应只存入其愿意交由该服务支配的金额。偶尔付款的用户只需使用按请求付费方案。

拉取,面向 Agent。 使用 --pull-key <name> --keyring-dir <dir> 时,代理还会提供 aether-pull,买家的资金会留在自己的账户中,直到需要支付时才扣款。Agent 向该 keyring 账户(收款方)授予 x/authz 发送额度 — 包括支出限额、到期时间,以及作为唯一允许收款方的 --pay-to;链上会强制执行这三项,Agent 可随时撤销额度 — 然后像预付请求一样签署每个请求,并立即获得服务。代理会分批收取每位买家所欠的款项,每笔交易使用一个 MsgExec 直接转至 --pay-to:先签名并保存,再广播,之后只会重新发送。--pull-credit(默认 100 个请求)会限制买家在两次收款之间可欠下的金额;如果有人在收款前刚好撤销额度,这也是最多可能损失的金额。收款失败会被记录下来,并且在额度足以覆盖欠款之前拒绝该买家的请求。收款方无需资金(首次授予其额度时会创建账户),并且只能在买家各自限额内将资金转至 --pay-to。欠款记录保存在 --pull-ledger 中(默认使用 --prepaid-ledger 文件)。

收据。 使用 --receipt-key <name> --keyring-dir <dir> 时,每个付费响应都会携带一份签名收据(X-PAYMENT-RECEIPT),其中包含网络、收款方、付款方、付款、价格、方式、主机、路径、请求正文的哈希、状态、响应正文的哈希(最多 4 MiB;更大的响应或事件流响应不会包含该哈希)以及时间。买家只需收款方地址,即可向任何人证明自己支付了什么以及收到了什么。收据密钥必须是 --pay-to 自己的密钥,或是其授权签发收据的密钥,这样收款方密钥就可以保持离线:在收款方密钥所在位置运行 paywall delegate-receipts --payee-key <name> --signer <receipt-key address> --keyring-dir <dir>,并将其写入的文件作为 --receipt-delegation 传入。 **提现。**添加 --payout-key <name> --keyring-dir <dir> 后,Agent 就能取回尚未花掉的款项:它们向 /.well-known/x402/withdraw POST 一条请求,签名方式与付费请求相同({"amount":"all"} 或以 uaeth 为单位的金额),代理会从该 keyring 账户付款——收款方始终是签名账户本身,因此,即使签名泄露或被重放,也只能退回 Agent 自己的钱。每个提现 ID 只支付一次:款项从余额中扣除,签名后的付款记录会在广播前保存到账本中,因此重试或付款过程中重启时,都会重新发送同一笔交易,而不会重复付款;只有在付款永远无法上链时,余额才会返还。部分提现金额不得低于 --min-deposit。付款账户只保留少量备用金(也可以是 --pay-to 自己的密钥)。启用提现后,清单和 402 响应会公布 withdrawPath。

上游服务只能通过代理访问。

服务目录

付费服务会在链上列出自身,因此 Agent 无需中央注册表即可找到它们。cmd/paywall 会在 /.well-known/x402 提供清单(--name、--description),而 paywall list --url <public URL> --key <payee key> --keyring-dir <dir> 会列出该服务:它会检查清单是否将该密钥的账户列为收款方,然后从该账户向目录地址发送 1 uaeth,并附上备注 x402-service:<url>(--delist 会发送 x402-delist:<url>,将其移除)。只有当该 URL 上的清单将发布者列为收款方时,服务才会显示,因此没有人能列出他人的服务。Agent 使用 find_services 查找服务;浏览器会在其 Services 页面上显示这些服务。清单来自任何人都能发布的 URL,因此获取清单时会拒绝私有和内部地址(仅供本地开发网使用的 --directory-allow-private 除外)。

**声誉。**每条服务列表都会附带链上显示的最近 100,800 个区块(约一周)内的使用情况:向其收款方支付的款项、付款账户数以及金额。买家可以向目录地址发送 1 uaeth,并附上备注 x402-rate:<1-5>:<url> 来为服务评分;只有先向该服务付款的用户所给的评分才会计入,且每个账户最新的评分会取代之前的评分。费用为零,因此卖家可以用自己控制的账户伪造付款和评分——请将这些数字仅作参考。卖家无法伪造的是来自你信任账户的评分,或你自己的体验:find_services 会分别报告可信评分和 Agent 自身的购买历史,并通过 orderBy: "trusted" 按这些信息排序。

链上 Agent 权限(x/authz、x/feegrant)

从 app.AuthzFeegrantActivationHeight(区块 109,000,已在测试网启用)开始,账户可以向另一个账户(Agent)授予范围受限、会过期且由链强制执行的权限,例如“允许从我的账户发送最多 1 AETH,直到星期五”,并可选择为其支付手续费:

aetherd tx authz grant <agent-address> send --spend-limit 1000000uaeth --expiration <unix-ts> --from <you>
aetherd tx feegrant grant <you> <agent-address> --spend-limit 100000uaeth --from <you>
aetherd tx authz revoke <agent-address> /cosmos.bank.v1beta1.MsgSend --from <you>

aetherd query authz grants <you> <agent-address>       # or grants-by-granter / grants-by-grantee
aetherd query feegrant grant <you> <agent-address>     # or grants-by-granter / grants-by-grantee
aetherd query bank balances <address>

运行 agentmcp 时使用 --granter <you>(以及 --fee-granter <you>),即可让 Agent 在此类授权下支出。

运行此二进制文件的节点会在激活高度暂停一次(CONSENSUS FAILURE,该区块不会提交),必须重启(systemctl restart aetherd)以添加两个新存储;原因见 app/authz_feegrant.go。

注册为验证者

在验证者节点本身运行:

go run ./cmd/validatorkeygen --miner <your-bech32-address> --home <the node's home>
# then run the aetherd tx pow register-validator-pubkey command it prints

它会注册节点自身的共识密钥,该密钥从 <home>/config/priv_validator_key.json 读取:节点用此密钥签署区块。注册其他密钥会导致矿工成为无人为其签署的验证者。--new-key 会生成一个新密钥,并打印 priv_validator_key.json,供先安装到节点上。

在一个纪元内成功挖矿并提交,即可累积原生工作量。在纪元边界(1440 个区块),原生工作量排名前 K(21)的矿工将成为活跃集合。停机(在 60 个区块的窗口内漏签超过 50%)会导致临时移除;双重签名会导致永久封禁并销毁托管资金。

一个共识密钥对应一个矿工账户。 切勿在两个矿工账户下注册同一节点密钥:如果两个账户都被选中,或一个账户离开集合时另一个加入,验证者更新会两次命名该密钥,导致 CometBFT 停止链运行。从 ConsensusKeyGuardActivationHeight(x/pow/types.go)起,链会拒绝这种操作:若要将密钥转移到新的矿工账户,先在旧账户上注册另一个密钥。轮换活跃验证者的密钥也会使其退出集合,直到某个纪元使用新密钥选中它。

矿工和验证者告警

cmd/minerwatch 会监视一个或多个地址,并在事件发生时立即推送,而不是让 Agent 轮询 /api/miner 或抓取 powminer 的日志:

go run ./cmd/minerwatch --address aether1... --webhook https://example.com/hook --low-balance "5 AETH" --state minerwatch.json

每个事件都会作为一行一个 JSON 对象打印到 stdout;设置 --webhook 后,还会通过 POST 发送到该地址,并在失败时重试。设置 --secret(或 MINERWATCH_SECRET)后,每个请求体都会像 agentmcp 的所有者告警一样进行签名:X-Aether-Signature 是 hex 编码的 HMAC-SHA256(secret, body)。每个事件都有一个 id,在重启后保持不变,因此接收方可以过滤重复事件;X-Aether-Event 会标明事件名称。

事件触发条件
pow_submission_confirmed / pow_submission_failed该地址的一次 PoW 提交已写入区块,或在区块中失败(rawLog 说明原因)
validator_selected该矿工被选入验证者集合;effectiveFrom 是其投票权开始生效的区块
validator_removed该矿工离开集合:reason 为 not_reselected、downtime 或 banned
miner_banned因双重签名而被封禁
no_work_this_epoch在纪元进度达到 --no-work-warn-at(0.5)时,已注册矿工仍没有工作量,因此在选定高度会离开(或无法加入)集合:activeValidator、blocksUntilSelection、message
selection_at_risk在集合选定前 --at-risk-blocks(20)个区块时,已注册矿工不符合资格或进度落后:notEligibleBecause、rank
balance_low / balance_recovered余额跨过 --low-balance 阈值
node_unreachable / node_recovered连续 --unreachable-after(3)次轮询失败后,首次轮询成功
chain_stalled / chain_resumed节点有响应,但经过 --stall-after(5m)仍未生成区块
signing_low / signing_recovered受监视验证者的预提交未出现在链的提交中:在其属于验证者集合期间,最近 --signing-window(60)个提交中至少漏掉了 1 − --signing-warn-below(0.8),远早于 x/pow 因停机将其移除(超过一半)。consensusAddress、missed、of、message
power_concentrated / power_concentration_eased任意验证者,无论是否受监视,持有的投票权超过 --concentration-above(三分之一),或不再超过该比例。超过三分之一时,该验证者离线会使链停止运行,直到其恢复。若该验证者属于受监视矿工,则包含 consensusAddress、powerShare、address

它每隔 --interval(30s)检查一次,并且在出现新区块前不会采取任何操作。签名检查会读取每个新区块的提交(每个区块查询一次;重启后会回读整个窗口),集中度检查则在每次轮询时读取一次验证者集合。设置 --state <file> 后,重启时会报告停机期间发生的情况;不设置则会从头开始。--once 配合 --state 适用于 cron 作业。

高度与停机告警

cmd/chainwatch 会监视一个或多个 CometBFT RPC,并在 seed 上与 minerwatch 一同运行。minerwatch 通过 gRPC 跟踪矿工地址;chainwatch 跟踪节点链头:

chainwatch --node seed=http://127.0.0.1:26657 --node sync3=http://sync3:26657 \
  --stall-after 3m --behind-blocks 10 --state chainwatch.json
chainwatch --rpc http://127.0.0.1:26657 --safe-to-stop
chainwatch --rpc http://127.0.0.1:26657 --safe-to-stop --validator B7F08625

Webhook URL 和 HMAC 密钥可通过 --webhook / --discord-webhook / --secret 设置,也可通过 CHAINWATCH_WEBHOOK、CHAINWATCH_DISCORD_WEBHOOK 和 CHAINWATCH_SECRET 设置。JSON webhook 使用与 minerwatch 相同的 X-Aether-Signature 标头。部署方式和各类告警的含义见:docs/OPS-RUNBOOK.md。

事件条件
tip_stalled / tip_resumed最高同步高度在 --stall-after(3m)时间内未变化,或在这段时间内没有任何受监视节点处于同步状态
node_behind / node_synced节点报告 catching_up,或其高度比链头低超过 --behind-blocks(10)
rpc_unreachable / rpc_recovered连续 --unreachable-after(3)次轮询失败,随后首次成功
validator_unsafe_to_stop / validator_safe_to_stop停止该验证者会使其他验证者的投票权总和降至或低于 2/3(CometBFT 需要严格超过 2/3 才能提交),或投票权恢复到该界限以下

--safe-to-stop 会为每个验证者输出相同的判定;如果所有验证者都可以逐个停止,则退出码为 0,否则只要有一个无法停止,退出码就是 2。使用 --validator 时,退出码仅针对该验证者。投票权恰好为 1/3 的验证者无法安全停止:其他验证者恰好持有 2/3,而这不足以提交。

合并挖矿(AuxPoW)

Litecoin/Dogecoin 系列的 AuxPoW(链 ID 17776)可满足 PoW 要求并获得奖励 + 难度重定向。从区块 396,000 起(参见席位规则),合并挖出的工作量也会计入验证者席位,并记入其证明中指定的奖励地址;只有已注册共识密钥的地址才能持有席位。在此高度之前,只有原生工作量会选出验证者。矿池通过 cmd/auxpowd 接入,这是一个桥接服务,支持 Namecoin 和 Dogecoin 使用的合并挖矿 RPC(createauxblock / submitauxblock);它会从 MergedMiningActivationHeight(测试网为 205,000)开始提供工作量。计划和状态见:docs/MERGED-MINING-PLAN.md。另请参阅 cmd/auxpowtest 和白皮书。

区块奖励计划

  • 创世:5_000_000 uaeth
  • 衰减因子:0.66,持续 8 年(按高度逐年调整)
  • 尾部:200_000 uaeth
  • 15% 扣减(验证者奖励托管 / 国库)

推导详情请参阅白皮书和 wiki 中有关尾部排放的说明。

治理与国库

参数值
最低存款25_000_000 uaeth
存款期14 天
投票期7 天
法定人数ceil(0.6 × Top-K)
通过2/3 非弃权票
否决1/3
任期递增期30 天
aetherd tx governance submit-proposal <recipient> <amount> <deposit> --from <key> --chain-id aether-testnet-1
aetherd tx governance vote <proposal-id> yes --from <key> --chain-id aether-testnet-1
aetherd query governance proposal <proposal-id>

仓库布局

路径作用
x/pow挖矿(Scrypt + AuxPoW)、难度、奖励、验证者、惩罚、活跃性
x/governance提案、按任期加权的投票、查询
x/treasury社区资金;经治理授权的支出
x/escrow为另一个账户锁定资金,直到释放、退款或到期(不是 x/pow 中的验证者奖励托管)
crypto/mldsaML-DSA-44、ADR-028 地址、密钥环 / ante
wallet/账户管理、查询、交易构建
app/应用接线;authz_feegrant.go 控制 x/authz + x/feegrant 的启用;helicase.go 接受由提议者纳入的中继交易
helicase/节点的 Helicase 工作器:查找要从另一条链中继过来的数据包并为其提供证明
relayer/、cmd/relayerAether 自有的 ML-DSA 中继器:打开路径(握手);relayer.Plan 查找任一方向待处理的内容
cmd/outbound无人值守的中继器,将交易中继到另一条链,并且只在该链上签名;中继到 Aether 的方向由 Helicase 负责
ligase/来自另一条链的转账,其备注中包含托管指令:无需 Aether 密钥即可注资、释放、提取
cmd/aetherd节点二进制文件
cmd/wallet基于 wallet/ 的 CLI
cmd/faucet限速水龙头
cmd/explorer精简的实时浏览器
cmd/agentmcpMCP 服务,将钱包作为工具调用开放给 AI Agent
paywall/、cmd/paywall按 HTTP 请求收取 AETH(x402 格式):中间件和反向代理
x402/、cmd/facilitator在 cosmos:<chain-id> 上实现标准 x402 v2 exact:验证、结算和公共协调服务
quest/Agent 任务:根据链上数据计算步骤和排行榜(文档)
cmd/agentmcp --sandbox-http托管测试钱包:通过 MCP 提供托管式测试网钱包(文档)
bench/支付基准测试,“你的 Agent 能为 API 付费吗?”:面向 Claude、GPT 和开源模型的任务、测试框架和链上评分(文档、结果)
directory/链上服务目录:公告、清单验证、安全获取
clients/ts、clients/pythonTypeScript 和 Python 客户端:密钥、支付、付费 API(购买和销售)、提现、目录
clients/vectors生成两个客户端共同使用的测试向量,并据此进行校验
cmd/powminer根据实时状态进行原生 PoW nonce 搜索
cmd/minerwatch面向矿工或验证者的 Webhook 告警:提交、入选、余额、停滞
cmd/chainwatchRPC 高度和停机告警,以及任一验证者能否使链停止
cmd/auxpowd面向 Litecoin 矿池的合并挖矿桥接器(createauxblock / submitauxblock)
cmd/auxpowtest构造有效的 AuxPoW;--auxpowd 可作为矿池连接桥接器
cmd/scryptbenchScrypt 吞吐量基准测试
cmd/validatorkeygen用于注册的共识密钥 + PoP
cmd/balancecheckgRPC 银行余额辅助工具
cmd/equivocationtest构造的双重签名证据
docs/WHITEPAPER.md技术白皮书
testnet/genesis.json正在运行的公共测试网创世文件

多节点及更多文档

  • 运维手册 — chainwatch 高度和停机告警、安全停止,以及演练模式切换/回滚脚本
  • 技术白皮书 — 系统设计、经济模型、密码学、安全限制(包括 BFT/Top-K 和高度门槛)
  • Agent 与机器人集成 — 作为软件 Agent 参与(当前接口和拟议的 API/策略)
  • Agent 间支付演示 — 可复现的真实支出限额授权和支付,适用于任何网络
  • 种子节点的 TLS — 为 RPC/gRPC/水龙头/区块浏览器启用 HTTPS,无需购买域名
  • IBC — 核心 IBC、ICS-20 转账、ICS-27 跨链账户:自区块 122,000 起已上线;还包括用于端到端测试的 ML-DSA 中继器和对接链,涵盖实时测试网
  • 区块浏览器 IBC 和账户抽象 — 区块浏览器的 IBC 和账户页面,以及对接方 RPC 向种子节点返回 403 时的处理方法
  • Helicase — 区块提议者无需任何中继器签名,即可将 IBC 数据包中继到 Aether:安全原因、运行方法及 devnet 验证
  • 连接到 Osmosis 测试网 — 真实外部 IBC 对接方的运维手册;目前受治理前置条件阻挡,尚未执行
  • 计划:Aether ↔ Osmosis ↔ Noble,使用 USDC 或 AETH 支付 — 各连接的用途、双方所需的中继器服务,以及实现 USDC 支付的各个阶段
  • 账户抽象 — 会话密钥和监护人阈值(x/accountauth):自区块 122,000 起已在测试网上线
  • Ligase — 无需 Aether 密钥,通过一次转账即可从另一条链托管资产;双链规则确保 AETH 使用后量子签名
  • 托管 — 为另一个账户(或 Agent)锁定资金,直到付款方或仲裁人释放资金、收款方或仲裁人退款,或期限届满后结算:已构建,尚未启用
  • Wiki:架构、第一阶段:多验证者选择、已知问题

许可证和品牌

本仓库中的软件采用 MIT License。

Aether 名称、Æ 标记和 docs/brand/ 中的素材不 受该许可证涵盖:请参阅 TRADEMARKS.md 和品牌使用与商标。

贡献

重大设计决策以及细微的 Cosmos SDK/CometBFT 集成修复均记录在 wiki 中。修改 app/、x/pow 或 crypto/mldsa 前请先阅读。

安全

目前尚无专业的第三方审计。欢迎社区审查,并通过 issue 负责任地披露问题。评估合作范围的研究人员应参考 wiki 中关于已知缺口的资料以及本 README 的状态表。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。