ahoy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

ahoy - Agent Phone Skill

ahoy - Agent 电话技能

Phone numbers for AI agents with calls and SMS. All your agents share the same number via World ID.
ENS: ahoy.base.eth API: https://useahoy.app XMTP Bot: check /health endpoint for current address
为AI Agent提供支持通话和短信功能的电话号码。所有Agent可通过World ID共享同一个号码。
ENS: ahoy.base.eth API: https://useahoy.app XMTP Bot: 查看/health接口获取当前地址

Install

安装

bash
npx skills add github:trionlabs/ahoy
bash
npx skills add github:trionlabs/ahoy

Quick Start

快速开始

Option A: One-shot (no World ID, $0.99)

选项A:一次性使用(无需World ID,费用0.99美元)

bash
undefined
bash
undefined

1. Get a temp number for 5 minutes

1. 获取一个有效期5分钟的临时号码

Returns: { id, phoneNumber, endpoints: { send, inbox, call, release } }

返回: { id, phoneNumber, endpoints: { send, inbox, call, release } }

2. Send SMS from your temp number

2. 从你的临时号码发送短信

POST https://useahoy.app/oneshot/:id/send { "to": "+15551234567", "message": "Hello from ahoy" }
POST https://useahoy.app/oneshot/:id/send { "to": "+15551234567", "message": "Hello from ahoy" }

3. Read received SMS

3. 读取收到的短信

4. Make a TTS call

4. 发起TTS语音通话

POST https://useahoy.app/oneshot/:id/call { "to": "+15551234567", "message": "Hello, this is ahoy" }
POST https://useahoy.app/oneshot/:id/call { "to": "+15551234567", "message": "Hello, this is ahoy" }

5. Release early (or wait 5 min for auto-release)

5. 提前释放号码(或等待5分钟自动释放)

Option B: Persistent number (World ID required, $3.99/month)

选项B:持久号码(需要World ID,费用3.99美元/月)

bash
undefined
bash
undefined

1. Provision a sybil-resistant number

1. 申请一个防女巫攻击的号码

2. Enable XMTP forwarding

2. 开启XMTP转发

3. Check your numbers (free)

3. 查看你拥有的号码(免费)

4. Read SMS inbox (free)

4. 读取短信收件箱(免费)

5. Check billing status (free)

5. 查看账单状态(免费)

6. Verify a phone is backed by a verified human

6. 验证某个手机号是否对应已认证的真人用户

7. Renew for 30 more days

7. 续费30天


WARNING: This is a proof of concept. Service may be unstable. Use at your own risk.

警告:本项目属于概念验证版本,服务可能不稳定,请自行承担使用风险。

Payment

支付

  • Network: World Chain (eip155:480) or Base (eip155:8453)
  • Token: USDC
  • One-shot (no World ID):
    • Oneshot session (5 min temp number): $0.99
  • Persistent (World ID required):
    • Provision: $3.99/month (1 free month for AgentKit verified humans)
    • Verify phone: $0.01
    • Renew (30 days): $3.99
  • Free (AgentKit auth only):
    • Number lookup, inbox, status
  • Pay to: ahoy.base.eth (
    0x1C66D49FB1e9782Aa838A2Ec9fa6F346C85096E0
    )
  • 网络: World Chain (eip155:480) 或 Base (eip155:8453)
  • 代币: USDC
  • 一次性使用(无需World ID):
    • 单次会话(5分钟临时号码):0.99美元
  • 持久号码(需要World ID):
    • 号码申请:3.99美元/月(AgentKit认证用户可享1个月免费)
    • 手机号验证:0.01美元
    • 续费(30天):3.99美元
  • 免费功能(仅需AgentKit认证):
    • 号码查询、收件箱查看、状态查询
  • 收款地址: ahoy.base.eth (
    0x1C66D49FB1e9782Aa838A2Ec9fa6F346C85096E0
    )

SMS Commands

SMS 指令

Text your ahoy number:
CommandDescription
/inbox
Read recent messages
/status
Number info
/help
Show commands
Any other textStored in inbox + forwarded to XMTP
向你的ahoy号码发送短信:
指令描述
/inbox
读取最近消息
/status
查看号码信息
/help
显示指令列表
其他任意文本存储在收件箱中并转发到XMTP

Voice

语音功能

Call your ahoy number and talk to an AI assistant powered by Claude. Per-call conversation history. Auto-answers with context about the verified human.
拨打你的ahoy号码即可与由Claude驱动的AI助手对话。支持单次通话的对话历史留存,会结合已认证用户的上下文自动应答。

XMTP Bridge

XMTP 桥接

DM the ahoy XMTP bot to bridge SMS and decentralized messaging:
CommandDescription
/dm <+phone> <message>
Send SMS from your ahoy number
/inbox
Read recent SMS messages
/status
Check registration
/help
Show commands
Pass
?notify=xmtp
when provisioning to auto-register your wallet for XMTP forwarding:
POST https://useahoy.app/provision?notify=xmtp
All incoming SMS will be forwarded to your XMTP address as DMs.
向ahoy XMTP机器人发送私信即可桥接短信和去中心化消息:
指令描述
/dm <+phone> <message>
从你的ahoy号码发送短信
/inbox
读取最近的短信消息
/status
查看注册状态
/help
显示指令列表
申请号码时传入
?notify=xmtp
参数即可自动注册你的钱包用于XMTP短信转发:
POST https://useahoy.app/provision?notify=xmtp
所有收到的短信都会以私信形式转发到你的XMTP地址。

API Reference

API 参考

One-shot (x402 only, no World ID needed)

一次性使用(仅需x402认证,无需World ID)

MethodPathPriceDescription
POST
/oneshot
$0.99Get a temp number for 5 min
POST
/oneshot/:id/send
freeSend SMS from temp number
GET
/oneshot/:id/inbox
freeRead received SMS
POST
/oneshot/:id/call
freeMake TTS call from temp number
POST
/oneshot/:id/release
freeRelease early
GET
/verify-phone?phone=+1...
$0.01Check if a phone is backed by a verified human
请求方法路径价格描述
POST
/oneshot
0.99美元获取一个5分钟有效期的临时号码
POST
/oneshot/:id/send
免费从临时号码发送短信
GET
/oneshot/:id/inbox
免费读取收到的短信
POST
/oneshot/:id/call
免费从临时号码发起TTS通话
POST
/oneshot/:id/release
免费提前释放号码
GET
/verify-phone?phone=+1...
0.01美元检查某个手机号是否对应已认证的真人用户

Paid (x402 + AgentKit, World ID required)

付费功能(需x402 + AgentKit认证,需要World ID)

MethodPathPriceDescription
POST
/provision
$3.99Provision a persistent number with sybil resistance
POST
/provision?notify=xmtp
$3.99Same + registers wallet for XMTP SMS forwarding
POST
/renew
$3.99Extend billing 30 days
请求方法路径价格描述
POST
/provision
3.99美元申请一个防女巫攻击的持久号码
POST
/provision?notify=xmtp
3.99美元同上,同时注册钱包用于XMTP短信转发
POST
/renew
3.99美元延长30天有效期

Free (AgentKit auth only)

免费功能(仅需AgentKit认证)

MethodPathDescription
GET
/number
Get your assigned number
GET
/messages
Read your SMS inbox
GET
/status
Check number status + billing
请求方法路径描述
GET
/number
获取你分配到的号码
GET
/messages
读取你的短信收件箱
GET
/status
查看号码状态和账单信息

Public (no auth)

公开接口(无需认证)

MethodPathDescription
GET
/health
Health check + XMTP bot address
GET
/.well-known/x402
x402 service discovery
GET
/openapi.json
OpenAPI spec
请求方法路径描述
GET
/health
健康检查 + 获取XMTP机器人地址
GET
/.well-known/x402
x402服务发现
GET
/openapi.json
OpenAPI 规范文档

Discovery

服务发现

bash
undefined
bash
undefined

agentcash

agentcash

npx agentcash discover https://useahoy.app
npx agentcash discover https://useahoy.app

x402 discovery

x402 discovery

Number Lifecycle

号码生命周期

  • Active (30 days) - SMS, voice AI, XMTP forwarding all work
  • Suspended (after expiry) - number reserved, stops receiving. POST /renew to reactivate
  • Released (7-day grace expires) - number gone, provision a new one
  • 活跃(30天)- 短信、语音AI、XMTP转发功能全部可用
  • 暂停(过期后)- 号码保留,停止接收消息。调用POST /renew即可重新激活
  • 释放(7天宽限期到期后)- 号码被回收,需重新申请新号码

Security

安全

  • Phone numbers encrypted at rest (AES-256-GCM)
  • No phone data on-chain (EAS attestation stores only humanId + isVerified)
  • World ID verification required (AgentKit proof-of-human)
  • Rate limited (60 req/min per IP)
  • 静态存储的手机号采用AES-256-GCM加密
  • 链上不存储任何手机号数据(EAS attestation仅存储humanId + 认证状态)
  • 需要World ID认证(AgentKit真人证明)
  • 限流规则:每个IP每分钟最多60次请求

On-Chain

链上相关

  • EAS attestation on World Chain when provisioned (schema:
    uint256 humanId, bool isVerified
    )
  • x402 Bazaar discovery extension on all paid endpoints
  • AgentKit free-trial for verified humans (1 free provision)
  • 号码申请成功后会在World Chain上生成EAS attestation(schema:
    uint256 humanId, bool isVerified
  • 所有付费接口支持x402 Bazaar发现扩展
  • 认证用户可享AgentKit免费试用(1次免费号码申请)

Example: One-shot (no World ID)

示例:一次性使用(无需World ID)

1. Agent calls POST /oneshot
2. x402: agent pays $0.99 USDC on Base
3. ahoy provisions a temp Twilio number
4. Returns: { id: "abc", phoneNumber: "+14155551234", endpoints: {...} }
5. Agent sends SMS: POST /oneshot/abc/send { to: "+1555...", message: "hello" }
6. Agent checks inbox: GET /oneshot/abc/inbox
7. After 5 min: number auto-releases from Twilio
1. Agent调用POST /oneshot
2. x402: Agent在Base网络支付0.99美元USDC
3. ahoy申请一个临时Twilio号码
4. 返回: { id: "abc", phoneNumber: "+14155551234", endpoints: {...} }
5. Agent发送短信: POST /oneshot/abc/send { to: "+1555...", message: "hello" }
6. Agent查看收件箱: GET /oneshot/abc/inbox
7. 5分钟后: 号码自动从Twilio释放

Example: Persistent number (World ID)

示例:持久号码(World ID)

1. Agent wallet 0xAAA calls POST /provision
2. x402: agent pays $3.99 USDC on Base
3. AgentKit: verifies wallet -> resolves to humanId via World ID
4. ahoy: checks if human already has a number
5. ahoy: provisions Twilio number with SMS + voice webhooks
6. ahoy: creates EAS attestation on World Chain
7. Returns: { numbers: [...], provisioned: true }
8. Someone texts the number -> stored in inbox
9. Agent reads via GET /messages or receives via XMTP
10. Someone calls the number -> AI assistant answers (Claude)
1. Agent钱包地址0xAAA调用POST /provision
2. x402: Agent在Base网络支付3.99美元USDC
3. AgentKit: 验证钱包 -> 通过World ID解析为humanId
4. ahoy: 检查该用户是否已经拥有号码
5. ahoy: 申请Twilio号码并配置短信+语音webhook
6. ahoy: 在World Chain上生成EAS attestation
7. 返回: { numbers: [...], provisioned: true }
8. 其他人向该号码发送短信 -> 存储在收件箱
9. Agent通过GET /messages读取短信或通过XMTP接收
10. 其他人拨打该号码 -> AI助手(Claude)应答