Execute trustless P2P token swaps on Solana via the Poseidon OTC protocol. Create trade rooms, negotiate offers, lock tokens with time-based escrow, and execute atomic on-chain swaps. Supports agent-to-agent trading with real-time WebSocket updates.
给智能体的快速总结: 此技能允许你在 Solana 上与人类或其他智能体进行代币交易。你需要创建一个房间,双方将代币存入托管账户,确认后执行原子交换。无需信任——一切都在链上完成。
const client = new PoseidonOTC({
burnerKey: process.env.POSEIDONBURNERKEY // base58 私钥
});
// 设置你提供的代币(以 100 USDC 为例)
await client.updateOffer(roomId, [{
mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, // USDC 铸币地址
amount: 100000000, // 100 USDC(6 位小数)
decimals: 6
}]);
// 存入后,第二次确认
await client.confirmTrade(roomId, second);
// 执行原子交换
const { txSignature } = await client.executeSwap(roomId);
┌─────────────────────────────────────────────────────────────────┐
│ 交易生命周期 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. 创建房间 │
│ └─> 方 A 调用 createRoom() │
│ 返回:roomId, 可分享链接 │
│ │
│ 2. 加入房间 │
│ └─> 方 B 调用 joinRoom(roomId) │
│ 房间现在包含两位参与者 │
│ │
│ 3. 设置报价 │
│ └─> 双方调用 updateOffer(roomId, tokens) │
│ 各自指定提供的代币 │
│ │
│ 4. 第一次确认(同意条款) │
│ └─> 双方调用 confirmTrade(roomId, first) │
│ 我同意用我的 X 交换你的 Y │
│ │
│ 5. 存入托管账户 │
│ └─> 代币转移到链上托管账户 │
│ (由前端或 depositToEscrow 处理) │
│ │
│ 6. 第二次确认(验证存入) │
│ └─> 双方调用 confirmTrade(roomId, second) │
│ 我看到存入完成,准备交换 │
│ │
│ 7. 执行交换 │
│ └─> 任一方调用 executeSwap(roomId) │
│ 通过中继器进行链上原子交换 │
│ 返回:txSignature │
│ │
│ [可选] 锁定流程 │
│ └─> 在步骤 4 之前,方 A 可以调用 proposeLockup(roomId, secs) │
│ └─> 方 B 必须调用 acceptLockup(roomId) 才能继续 │
│ └─> 执行后,锁定的代币通过 claimLockedTokens 领取 │
│ │
└─────────────────────────────────────────────────────────────────┘
| 方法 | 参数 | 返回 | 描述 |
|---|---|---|---|
| createRoom(options?) | { inviteCode?: string } | { roomId, link } | 创建新房间 |
| getRoom(roomId) |
| 方法 | 参数 | 返回 | 描述 |
|---|---|---|---|
| updateOffer(roomId, tokens) | roomId, [{mint, amount, decimals}] | { success } | 设置你的报价 |
| withdrawFromOffer(roomId, tokens) |
| 方法 | 参数 | 返回 | 描述 |
|---|---|---|---|
| proposeLockup(roomId, seconds) | roomId, seconds | { success } | 提议锁定 |
| acceptLockup(roomId) |
| 方法 | 参数 | 返回 | 描述 |
|---|---|---|---|
| getBalance() | 无 | { sol: number } | 检查 SOL 余额 |
| isAutonomous() |
不要轮询。订阅。
与其重复调用 getRoom(),不如连接 WebSocket 获取即时更新:
端点: wss://poseidon.cash/ws/trade-room
| 事件 | 触发时机 |
|---|---|
| full-state | 订阅时立即触发 - 完整房间状态 |
| join |
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 poseidon-otc-1776372753 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 poseidon-otc-1776372753 技能
skillhub install poseidon-otc-1776372753
文件大小: 19.74 KB | 发布时间: 2026-4-17 14:39