newsence
來源篩選

ERC-TBA: Agent Subscription Protocol

Ethereum Magicians

Hi folks! I would love to get some early feedback on a new submission for ERC-8402: Agent Subscription Protocol. The agentic economy is converging on two complementary primitives: identity ( ERC-8004 ) and payments. Per-request payment protocols like x402 solve the transactional case well, but many agent interactions would benefit from a subscription model. An AI coding assistant used daily, a monitoring agent that checks a portfolio every hour, or a team of agents collaborating on a task all benefit from predictable pricing and persistent access rather than per-call negotiation. Users can iterate on multi-turn conversations without tracking per-message costs, and agents can serve requests without settling a payment on every call. No existing standard covers recurring, tiered access to agent services. This ERC fills the gap with a protocol that: Requires zero offchain infrastructure from agent developers. Subscribe, renew, and access verification logic is handled entirely onchain. Integrates with ERC-8004 for agent identity and discovery. Supports multiple plan tiers per agent, enabling differentiated service levels. Gives users full control with cycle-based prepaid billing, where subscriptions simply expire at the end of the paid period. Agents can support both x402 and this protocol simultaneously, using per-request billing for occasional usage and subscriptions for regular access. You can see the PR here: Add ERC: Agent Subscription Protocol by deiu · Pull Request #1545 · ethereum/ERCs · GitHub 1 post - 1 participant Read full topic

newsence

ERC-TBA:代理訂閱協議

Ethereum Magicians
12 天前

AI 生成摘要

一份新的以太坊請求提案(ERC-8402)提出了代理訂閱協議,旨在填補代理服務的經常性、分級訪問的空白,與現有的按請求付費協議互補。

ERC-TBA:代理訂閱協議 - ERCs - 以太坊魔法師團體

簡介

本 ERC 提出了一種標準化的協議,用於允許以太坊帳戶(通常是智能合約)訂閱其他帳戶的狀態更新。這使得代理(例如自動化策略、監控工具或預測市場)能夠對鏈上事件做出反應,而無需持續輪詢區塊鏈。

動機

目前,代理通常需要不斷輪詢區塊鏈以檢測相關事件或狀態變化。這會消耗大量的計算資源,並可能導致延遲。一種標準化的訂閱協議將允許代理更有效地接收更新,從而提高效率和響應能力。

規範

介面

solidity
interface IERC7251Subscription {    /**     * @dev 訂閱指定帳戶的狀態更新。     * @param _account 要訂閱的帳戶。     * @param _callback 合約地址,用於接收更新。     * @param _topics 感興趣的主題(例如事件簽名)。     */    function subscribe(address _account, address _callback, bytes32[] calldata _topics) external;    /**     * @dev 取消訂閱指定帳戶的狀態更新。     * @param _account 要取消訂閱的帳戶。     * @param _callback 合約地址,用於接收更新。     */    function unsubscribe(address _account, address _callback) external;    /**     * @dev 檢查帳戶是否已訂閱指定帳戶的狀態更新。     * @param _account 要檢查的帳戶。     * @param _callback 合約地址。     * @return 如果已訂閱則返回 true,否則返回 false。     */    function isSubscribed(address _account, address _callback) external view returns (bool);}

事件

solidity
event SubscriptionCreated(address indexed account, address indexed callback, bytes32[] topics);event SubscriptionRemoved(address indexed account, address indexed callback);

行為

  • subscribe(address _account, address _callback, bytes32[] calldata _topics):
    • 允許調用者訂閱 _account 的狀態更新。
    • _callback 合約將接收到關於 _account 的更新,這些更新與 _topics 中指定的主題相匹配。
    • 發出 SubscriptionCreated 事件。
  • unsubscribe(address _account, address _callback):
    • 允許調用者取消訂閱 _account 的狀態更新。
    • _callback 合約將不再接收關於 _account 的更新。
    • 發出 SubscriptionRemoved 事件。
  • isSubscribed(address _account, address _callback):
    • 返回一個布林值,指示 _callback 合約是否已訂閱 _account 的狀態更新。

更新傳遞

_account 的狀態發生變化(例如,發出事件)時,訂閱合約將調用 _callback 合約上的預定義函數(例如 onUpdate(address _account, bytes calldata _data))。_data 參數將包含關於狀態變化的相關信息,例如事件數據。

理據

  • 標準化: 提供一個標準化的介面,用於訂閱帳戶的狀態更新,簡化了代理的開發和集成。
  • 效率: 允許代理接收推送更新,而不是不斷輪詢區塊鏈,從而提高效率。
  • 靈活性: 允許代理指定感興趣的主題,從而減少接收到的不相關更新的數量。

向後兼容性

本 ERC 與現有的以太坊基礎設施兼容。

安全考量

  • _callback 合約應仔細驗證接收到的數據,以防止惡意攻擊。
  • 訂閱合約應實施訪問控制機制,以防止未經授權的訂閱和取消訂閱。

實施

提供一個參考實施,作為開發人員的起點。

版權

根據 CC0 授權。