Skip to content

Add ERC: Token-Bound Executable Skills - #1879

Open
garyyang-finchip wants to merge 31 commits into
ethereum:masterfrom
garyyang-finchip:master
Open

garyyang-finchip wants to merge 31 commits into
ethereum:masterfrom
garyyang-finchip:master

Conversation

@garyyang-finchip

Copy link
Copy Markdown
Contributor

This PR adds a new ERC: Token-Bound Executable Skills — an ERC-721 extension
binding a token to a hash-verifiable executable skill package (deterministic
DAG-CBOR object graph, plaintext primary-document commitment, contract-owned
version chain, publication authority separate from ownership, irreversible
freeze, optional in-package confidentiality).

Discussion: https://ethereum-magicians.org/t/token-bound-executable-skills-the-artifact-identity-integrity-layer-under-skill-registries-erc-721-extension/29005

Reference implementation in assets/: Solidity contracts (interface IDs
compiler-verified: ISkillToken = 0x734553a6, IOnchainSkillDocument =
0x7050dd2c), zero-dependency packer/verifier, JSON Schemas, Foundry suite
(12/12, one assertion per MUST clause), and six frozen test vectors.
Deployed and verified end-to-end on Sepolia:
0x12cc1a5319c6F08bFB50982e3814A376A59fE550.

Note: erc-9999 is a placeholder number, to be renamed to the assigned
number (file name, eip header, and assets directory together).

@eip-review-bot

eip-review-bot commented Jul 14, 2026 •

Copy link
Copy Markdown
Collaborator

File ERCS/erc-8338.md

Requires 1 more review from Editors: @g11tech, @jochem-brouwer, @samwilsn, @xinbenlv

Comment thread ERCS/erc-9999.md Outdated
@@ -0,0 +1,327 @@
---
eip: 9999

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
eip: 9999
eip: 8338

Assigning next sequential EIP/ERC/RIP number.
Numbers are assigned by editors & associates.

Please also update the filename.

Comment thread ERCS/erc-9999.md Outdated
title: Token-Bound Executable Skills
description: An ERC-721 extension binding tokens to hash-verifiable executable skill packages with update control and optional confidentiality.
author: Gary Yang (@garyyang-finchip)
discussions-to: https://ethereum-magicians.org/t/token-bound-executable-skills-the-artifact-identity-integrity-layer-under-skill-registries-erc-721-extension/29005

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
discussions-to: https://ethereum-magicians.org/t/token-bound-executable-skills-the-artifact-identity-integrity-layer-under-skill-registries-erc-721-extension/29005
discussions-to: https://ethereum-magicians.org/t/erc-8338-token-bound-executable-skills/29005

Updated Eth Magicians title with assigned number & ERC title.

@garyyang-finchip

Copy link
Copy Markdown
Contributor Author

Thanks @abcoathup , all done.
Renamed to erc-8338 across the file name, eip header, discussions-to, and the assets/erc-8338/ directory.
Ready for another look, and to approve the workflow run when you have a moment.

@abcoathup

Copy link
Copy Markdown
Contributor

Ready for another look, and to approve the workflow run when you have a moment.

You will need an editor to review (which I am not).

@garyyang-finchip

Copy link
Copy Markdown
Contributor Author

Thanks @abcoathup, understood.
Flagging for editor review, @g11tech @jochem-brouwer @SamWilsn @xinbenlv, whenever one of you has a moment: the PR is ready, CI just needs a maintainer to approve the workflow run. Reference implementation, six frozen test vectors, and a live Sepolia deployment are all in assets/. Thanks!

@github-actions github-actions Bot added the w-ci label Jul 26, 2026
@github-actions github-actions Bot removed the w-ci label Sep 7, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

The commit 71b1103 (as a parent of 7452091) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions Bot added the w-ci label Sep 9, 2026

@jochem-brouwer jochem-brouwer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This review was written with assistance of an LLM.

First editorial review of the proposal text (prior feedback was number assignment and discussions-to, both addressed).

Verified

  • Frontmatter valid; requires (165, 721) Final; all in-body proposal links (ERC-721/1155/4337/4907/5169/8004/8257) resolve; asset links and ../LICENSE.md follow convention; all Solidity assets are CC0.
  • Recomputed both ERC-165 interface identifiers from the interface listings: ISkillToken = 0x734553a6, IOnchainSkillDocument = 0x7050dd2c — both correct, and the spec's interface blocks match the asset interfaces exactly.
  • Re-verified all six frozen vectors independently: every object file hashes (SHA-256) to its filename; every skillroot.cbor hashes to the stated packageHash; my own DAG-CBOR canonical encoder re-encodes all six roots byte-for-byte (deterministic encoding holds); the prev chains link correctly (update-v2-companion-only → public-v1, key-rotation-v2 → confidential-v1); confidentiality descriptors are public JSON with plaintextHash consistency against mdHash.

Findings — see inline comments:

  1. Blocking: erc-8419.md (Know-Your-Agent Framework — an unrelated proposal) is committed at the repository root. Root-level files are not picked up by the site build, so none of the green CI checks validated it; it must be removed from this PR.
  2. assets/erc-8338/README.md links an external GitHub repository (and pins a Sepolia deployment); the Reference Implementation section (line 302) directs readers to that "canonical repository" for the packer/verifier. EIP-1's link policy does not allow this origin, and the proposal cannot rely on external mutable material.
  3. RFC 2119/8174 boilerplate is unlinked (line 69).

Non-blocking note: Security Considerations carries normative uppercase keywords (e.g. "Purchasers MUST inspect", "runtimes MUST sandbox", "MUST be documented", "Rotation MUST surface"). House practice is to keep requirements in Specification and discuss implications elsewhere; lowercasing in place would also resolve it.

Comment thread erc-8419.md Resolved
Comment thread ERCS/erc-8338.md Resolved
Comment thread ERCS/erc-8338.md Resolved
Comment thread assets/erc-8338/README.md Resolved
@garyyang-finchip

Copy link
Copy Markdown
Contributor Author

Thank you @jochem-brouwer for the thorough review — especially for independently
re-verifying the six vectors and both interface IDs. All four findings addressed:

  • erc-8419.md removed from this PR (accidental upload; it will get its own PR
    from a separate branch).
  • RFC 2119/8174 now linked (your suggested text, committed directly in one upload
    rather than via Apply suggestion).
  • External repository link and deployment pointer removed from
    assets/erc-8338/README.md; it now describes only what is vendored here. The
    Reference Implementation sentence pointing to an external toolchain is dropped —
    as you note, the six vectors plus the normative encoding rules are sufficient.
  • Security Considerations: normative uppercase keywords lowercased in place.

Ready for another look.

@jochem-brouwer jochem-brouwer left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This review was written with assistance of an LLM.

Follow-up to my review of 2026-10-07. Only three files changed since aa6a077 (ERCS/erc-8338.md +7/-7, assets/erc-8338/README.md +8/-8, erc-8419.md removed), so the vector/interface-id verification from the previous review still stands.

Earlier findings — all resolved

  1. erc-8419.md at the repository root: removed (commit 83f3eb3). ✅
  2. External GitHub repository / Sepolia pointer in assets/erc-8338/README.md and the "canonical repository" sentence in Reference Implementation: both removed; the README now describes only vendored material and no asset file links to a disallowed origin (the remaining https:// strings are JSON Schema $id placeholders and example hosts in tests). ✅
  3. RFC 2119/8174 boilerplate: now linked. ✅
  4. (Non-blocking) uppercase keywords in Security Considerations: lowercased. ✅

CI is green on the current head.

Remaining editorial items — see inline comments:

  • Required: RFC 8949 is cited without a link (Specification › SkillRoot).
  • Required: abbreviations are used before being spelled out: LLM, CID, BOM, DAG-CBOR/CBOR, TEE/FHE/ZK, NFT. Spell each out once at first use.
  • Non-blocking: an uppercase OPTIONAL sits in the Abstract diagram and MUST appears in Reference Implementation; keep RFC 2119 keywords inside Specification.
  • Non-blocking: the "ERC-721-based agent skill registry … in draft review" in Rationale is ERC-8239 (#1704); naming it helps readers find it.

Once the two required items are in, this is ready to merge as Draft.

Comment thread ERCS/erc-8338.md Resolved
Comment thread ERCS/erc-8338.md Resolved
Comment thread ERCS/erc-8338.md Resolved
Comment thread ERCS/erc-8338.md Resolved
Comment thread ERCS/erc-8338.md Resolved
@garyyang-finchip

Copy link
Copy Markdown
Contributor Author

Thanks @jochem-brouwer — both required items are addressed:

Required

  1. RFC 8949 link — linked in Specification › SkillRoot. The sentence is reworded so the encoding rules stand on their own ("…following the rules below, which match the DAG-CBOR profile and the core deterministic encoding requirements of RFC 8949…"), per your note on the ipld.io origin.
  2. Abbreviations expanded on first use — LLM (Abstract, your suggestion applied), CID (defined in prose directly below the Abstract diagram), BOM (Hash definitions), CBOR / DAG-CBOR (SkillRoot), TEE / FHE / ZK (Confidentiality descriptor), NFT (Backwards Compatibility).

Non-blocking

  • Abstract diagram: "OPTIONAL" → "optional"; Reference Implementation: "every MUST clause" → "every normative requirement" — both taken.
  • Naming ERC-8239 in Rationale: deferred with regret — an unlinked proposal reference trips eipw's markdown-link-first lint (and it cannot be linked until merged), so the descriptive wording stays for now; happy to add the name and link in an editorial follow-up once ERC-8239 is merged.

No changes to interfaces, assets, schemas or test vectors; interface identifiers unchanged. Re-requesting your review — thank you for the fast turnaround.

This document introduces the Generative Engine Optimization Framework (GEOF), detailing its structure, motivation, specifications, and security considerations.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants