WaneProtocol/wane-solana

GitHub: WaneProtocol/wane-solana

为 Solana 上的 AI 代理提供共享链上威胁免疫记忆和非托管会话钱包,在交易签名前拦截对已知恶意地址的资金外流。

Stars: 0 | Forks: 0

Wane Solana

license ci solana anchor lang website x

为 AI 代理提供的共享链上免疫记忆,配备非托管会话钱包,在价值转移前筛选外流交易。 当某个代理遭到抽水耗尽后,其地址(或调用模式、字节码、或语义指纹)将作为抗体被发布一次。其他所有在签名前读取该注册表的代理,随后都将对同一威胁免疫。读取操作属于普通的账户查询,因此不产生 view call,也没有单次读取成本。 这是 Base/EVM Wane 防护层的 Solana 移植版本。 ## 架构 ``` flowchart LR A[AI agent] -->|check before sign| R[wane_registry
antibody PDAs] A -->|owns session| V[wane_vault
funds in PDA] V -->|CPI account-load| R V -->|clean recipient| D[destination] V -. flagged: revert .-> D P[reporter] -->|stake WANE| R C[challenger] -->|dispute| R ``` 金库从不托管 intent:所有者驱动每一笔发送,程序只能进行拦截。传递给金库的抗体账户通过 PDA seeds 与目标地址绑定,因此筛选过程无法被跳过。 ## 程序 | 程序 | ID (devnet 和 mainnet) | | --- | --- | | `wane_registry` | `5Arj4zbFs5GigEGUSUb9hKNMYaPLqv1XgJXUcnGJ1wJH` | | `wane_vault` | `5YK7gMzkjUvLaxfNisMdtjRK4UeAiJBCSonB3GgrtTYh` | ### wane_registry 抗体注册表。一个抗体即是一个由 `(kind, subject)` 索引的 PDA,因此 PDA 地址本身就是去重 key。它内置了一套以 `$WANE` SPL token 计价的经济机制,包含质押/作证/挑战/仲裁,以及可立即生效的协议所有的创世抗体。治理采用两步转移机制,经济参数可更新,并且注册表支持暂停操作。 ### wane_vault 非托管的 session-key 智能账户。资金存放在程序拥有的金库 PDA 中,由所有者驱动每一笔发送,程序只能进行拦截,绝不转移资金。`wane_execute` 会根据注册表和代理自身的策略(单笔交易上限、每日上限、有效期、熔断开关)对每笔原生 SOL 外流进行筛查,如果目标地址被标记,则在任何 lamport 发生转移前进行回滚。 该筛查无法被绕过:目标地址的抗体账户通过 PDA seeds 与目标地址绑定,因此调用者无法将其省略,也无法替换为一个干净地址以让被标记的发送蒙混过关。所有者始终可以 `withdraw` 自己的资金,因此存款绝不会被困住。 ## SDK `sdk/` 是一个轻依赖的 TypeScript 客户端(仅依赖 `@solana/web3.js`),涵盖两种集成路径: - 机器人开发者:在签名前调用 `check(target)`,命中时调用 `report(threat)`。无需托管,无需迁移,只需一次调用。 - 个人代理:注册一个 Wane 会话钱包,存入资金,并通过 `send` 路由发送,程序将在链上进行筛查。 ``` import { Wane } from "wane-solana"; const wane = Wane.devnet(); const v = await wane.checkAddress(target); // { flagged: true, antibody: {...} } ``` 指令数据为 8 字节的 Anchor discriminator 加上 borsh,与已部署的程序相匹配。`sdk/test/encoding.test.ts` 会根据链上布局验证 discriminator 和 PDA 派生。 ## 构建和测试 ``` git clone --recurse-submodules https://github.com/WaneProtocol/wane-solana cd wane-solana # 程序 (Anchor / cargo-build-sbf) anchor build # 在真实 SBF runtime 上的完整 e2e (litesvm) cd e2e && cargo run # SDK 类型检查 + 编码测试 cd sdk && npx tsc --noEmit && npx tsx test/encoding.test.ts ``` 构建说明:当前的 devnet 仅启用 SBPFv3,而 mainnet 仍接受 SBPFv0/v1/v2。请针对目标集群使用匹配的 `cargo-build-sbf --arch` 来构建 `.so`。 ## 项目结构 ``` programs/wane_registry init_config, mint_antibody, corroborate, seed_genesis, challenge, resolve, claim_rewards, update_config, governance programs/wane_vault enroll, deposit, wane_execute, withdraw, update_policy, set_paused sdk TypeScript client (both personas) e2e litesvm end-to-end suite tests bankrun end-to-end (TypeScript) ``` ## 链接 - 网站: https://wane.network - X: https://x.com/wanedotnetwork - GitHub: https://github.com/WaneProtocol/wane-solana ## 许可证 MIT
标签:Rust, Solana, 人工智能代理, 可视化界面, 威胁情报, 开发者工具, 智能合约, 网络流量审计, 通知系统, 非托管钱包