Hey all,
Agent ecosystems need a canonical way to reference the skills an agent offers. Today skills declarations live only inside offchain URI files, which makes it harder to discover agents by skill, aggregate reputation at the skill level, or link a completed job to the specific skills that produced it.
I’d like to propose an EIP that introduces:
- Canonical Onchain Skill Identity: An ERC-721
SkillRegistrywhere each token is a skill, withtokenURIpointing to a standardized offchain manifest describing the skill. Skills are stable, transferable, and identifiable across the ecosystem. - Skill Registration File Format: Fields native to skills such as:
invocations(prompt bundles, MCP servers, code packages, plugins), each with aninstallationslot for commands or LLM-ready prompts.license, dependencies, requirements, taxonomy (OASF, etc.), and status - Event Level Attestation Layer: A
SkillAttestationcontract emitsSkillUsedevents covering various authorization paths including self-attestation, ERC-8183 job evaluator attestation, and ERC-8183 hook attested routes. Indexers fold events into per-agent-per-skill and per-skill views. - Event Level Installation Layer: A
SkillInstallationcontract emits install/uninstall events so each agent can declare capabilities with the particular skills it offers.
Proposed Spec: ERC PR
Reference Implementation: vorpalengineering/agent-skill-registry
Reference Skill Package Manager CLI: vorpalengineering/asrpm
Happy to dig into the spec for any questions you might have!
A few open questions to spark discussion:
- An earlier version of the spec used ERC-1155 instead of ERC-721 for the Skill Registry. The idea here was that registrations would create a new tokenId (with standard Ownable features) and balances would represent installations of that skill in a soulbound-like fashion (balance capped at 1 and non-transferrable). The current event-only design was favored to keep the spec light and more gas-efficient, however it does prevent some interesting token-gated skill possibilities and onchain skill installation query-ability through balances.
- How do we feel about piggybacking off the ERC-8004 Reputation system? Currently it requires taking up both
tag1andtag2on thegiveFeedback()calls. Rolling our own skill reputation system felt unnecessary when we could tap into existing rails, and this allows indexers to filter and parse on specific tags. - The current attestation design covers 3 unique types: self-attested, evaluator-attested, and hook-attested. Is this sufficient coverage? Is this design missing any critical types or blocking support for standardized attestations (i.e. EAS attestations?)
Update (May 20, 2026)
I’ve added the first draft of a new CLI tool asrpm that acts as a package manager for agent skills registered via ASR. It’s currently available on MacOS/Linux via brew install vorpalengineering/tap/asrpm or it can be built from source. Some example commands to get an idea for how it works:
// Resolve a skill and print to terminal
asrpm resolve <skill-id>
// Install a skill
asrpm install <skill-id>
// Register a new skill (signs tx with foundry keystore)
asrpm register \
--manifest path/to/manifest.json \
--uri https://gateway.pinata.cloud/ipfs/<cid> \
--account my-keystore
// List locally installed skills
asrpm list
// Verify onchain manifest checksums
asrpm verify <skill-id>
Bootstrap Skill
I’ve also minted the asrpm skill (Skill ID 0) to act as the bootstrap skill that informs an agent about ASR and asrpm itself to solve the cold start problem. Install this with:
asrpm install 0
And resolve with:
asrpm resolve 0
Which returns:
Skill #0
URI: data:application/json;charset=utf-8;base64,ewogICJ0eXBlIjogInNraWxsIiwKICAibmFt…
Resolved: data:inline
Manifest hash: ✓ matches registry
Name: asrpm
Version: 1.0.0
License: MIT
Keywords: asr, erc-8239, bootstrap, agent-skills
Status: stable
Author: Vorpal Engineering (https://vorpalengineering.com)
Homepage: https://eips.ethereum.org/EIPS/eip-8239
Repository: https://github.com/vorpalengineering/asrpm
Description:
ASRPM Bootstrap skill: teaches agents about the Agent Skill Registry
(ERC-8239) and how to interact with it.
Targets:
[1] claude-code-skill
uri: data:text/markdown;charset=utf-8;base64,LS0tCm5hbWU6IGFzcnBtCmRlc2NyaXB0aW9uOiB…
integrity: keccak256:2ad22e0f7b5953ef93d435eaa…
version: 0.1.0
Note: The
asrpmbootstrap skill manifest file is base64-encoded and hosted onchain at the skillURI. TheSKILL.mdfile itself is also base64 encoded directly into the manifest. Therefore, this skill can be installed without needing any offchain resolution.
Contract Deployments
| Contract | Address | Chain |
|---|---|---|
| SkillRegistry | 0x8239AAbaa1A44338bEeFAAf4C3a373d2a18D5DC4 | Eth Sepolia |
| SkillAttestation | 0x8239bb93AD4C3EB1581B7359Afbe3Bc7BE15A9cf | Eth Sepolia |
| SkillAttestationHook | 0x8239CC872158ae66f95C85a3721cbE9644Bdf079 | Eth Sepolia |