Skip to content

feat(EVES-003): add EVM/ERC-721 token metadata support#46

Open
jdsika wants to merge 1 commit intomainfrom
feat/eves-003-evm-token-metadata-v2
Open

feat(EVES-003): add EVM/ERC-721 token metadata support#46
jdsika wants to merge 1 commit intomainfrom
feat/eves-003-evm-token-metadata-v2

Conversation

@jdsika
Copy link
Copy Markdown
Contributor

@jdsika jdsika commented Apr 8, 2026

Summary

Extends EVES-003 to support EVM chains alongside the existing Tezos/TZIP-21 token metadata path, enabling minting simulation asset NFTs as ERC-721 tokens on Ethereum-compatible chains (for example, Etherlink L2).

  • Add ERC-721/OpenSea metadata mapping table parallel to the existing TZIP-21 table, with background_color, contributors, and language rows
  • Add ERC-7572 contractURI() contract-level metadata subsection for EVM deployments
  • Recommend ERC-5192 (soulbound) and ERC-4906 (metadata update events) for template contracts
  • Generalize Steps 2, 4, and 5 to branch between Tezos and EVM token metadata flows
  • Add EVM contract identifier example (Etherlink L2) to Section 5 using EVES-007 URN schema
  • Create example/erc721_token_metadata.json with ENVITED-X brand background_color (111827)
  • Create erc721-schemas/erc721_token_metadata-schema.json (JSON Schema draft-07)
  • Add references [23]-[29] for OpenSea, ERC-4906, ERC-5192, ERC-721, ERC-7572, EVES-008, RFC 1766

Key design decisions

  • Cross-chain identity: did:ethr (anchored on Base per EVES-008) is used as the minter DID for both Tezos and EVM tokens — it identifies the organization, not the minting chain
  • Ontology attributes: Use full ontology IRI as trait_type and release URL as value (lossless mapping from TZIP-21 name/value, no duplicate trait_types)
  • RFC 2119 boilerplate: Moved to top of Specification section (keywords used throughout, not just Token Metadata)
  • JSON Schema fix: title moved inside asset definition to avoid draft-07 $ref sibling keyword bug
  • Additive change: Existing Tezos/TZIP-21 path is unchanged; all EVM support is additive

Depends on

Test plan

  • make lint passes (markdownlint + frontmatter validation)
  • make format-check passes (Prettier)
  • All pre-commit hooks pass (including Vale)
  • New JSON files parse correctly
  • erc721_token_metadata.json validates against erc721_token_metadata-schema.json
  • All reference links [1]-[29] are defined and used (no orphans)
  • No remaining e.g. in any EVES-003 file (spec, schemas, examples)

Closes #35

@jdsika jdsika force-pushed the feat/eves-003-evm-token-metadata-v2 branch 2 times, most recently from d1123e0 to d2a1941 Compare April 8, 2026 07:54
@jdsika jdsika force-pushed the fix/ci-and-lint-cleanup branch from 8500fe5 to 77920ae Compare April 8, 2026 08:02
@jdsika jdsika force-pushed the feat/eves-003-evm-token-metadata-v2 branch 2 times, most recently from d1f6a24 to 657316d Compare April 8, 2026 08:12
@jdsika jdsika force-pushed the fix/ci-and-lint-cleanup branch from c05aae0 to 6cefbde Compare April 8, 2026 08:24
@jdsika jdsika force-pushed the feat/eves-003-evm-token-metadata-v2 branch from 657316d to 28db2d2 Compare April 8, 2026 08:25
Base automatically changed from fix/ci-and-lint-cleanup to main April 8, 2026 08:38
@jdsika jdsika self-assigned this Apr 8, 2026
@jdsika jdsika force-pushed the feat/eves-003-evm-token-metadata-v2 branch 4 times, most recently from 2e217ad to b50a445 Compare April 8, 2026 08:58
Extend EVES-003 to support EVM chains alongside the existing
Tezos/TZIP-21 token metadata path, enabling minting simulation
asset NFTs as ERC-721 tokens on Ethereum-compatible chains such as
Etherlink L2, as anticipated by EVES-006 and EVES-007.

Spec text (eves-003.md):
- Add EVES-007 and EVES-008 to requires frontmatter
- Add RFC 2119 boilerplate at top of Specification section
- Add [29] RFC 1766 reference for language field
- Generalize abstract to reference both TZIP-21 and ERC-721
- Branch Steps 2, 4, and 5 for chain-specific token metadata files
- Add EVM contract identifier (Etherlink L2) to Section 5
- Restructure into parent "6. Token Metadata" section with
  subsections for TZIP-21 (Tezos) and ERC-721 (EVM)
- Add ERC-721/OpenSea metadata mapping table with background_color,
  contributors, and language rows
- Add language row to TZIP-21 mapping table (backed by TZIP-21 spec)
- Clarify did:ethr as cross-chain organizational identity (EVES-008)
- Add ERC-7572 contract-level metadata subsection
- Recommend ERC-5192 for soulbound tokens, ERC-4906 for metadata
  update events
- Fix ontology property paths to match current SHACL shapes
- Migrate ontology IRIs to w3id.org (envited-x/v3, manifest/v5,
  hdmap/v6)

Schemas:
- Fix JSON Schema draft-07 $ref sibling bug (move title into asset
  definition) in both schemas
- Replace "e.g." with "for example" in all schema descriptions
- New erc721_token_metadata-schema.json (JSON Schema draft-07)
- TZIP-21: add required ["name"], update minter to DID per EVES-008,
  fix RFC 1776 → RFC 1766

Examples:
- New erc721_token_metadata.json with background_color "111827",
  ontology IRIs as trait_type (lossless mapping)
- TZIP-21: update minter to did:ethr per EVES-008, migrate ontology
  IRIs
- Manifest: fix @context to array-style, update gx namespace, fix
  hasLicense structure per manifest SHACL

Closes #35

Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
@jdsika jdsika force-pushed the feat/eves-003-evm-token-metadata-v2 branch from b50a445 to e1f2c88 Compare April 8, 2026 10:26
@jdsika jdsika added the enhancement New feature or request label Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EVES-003 EVM token metadata

1 participant