Skip to content

Commit 55d30f6

Browse files
authored
feat: add EVES-007 ENVITED-X Blockchain Identifier URN Schema (#27)
* feat: add EVES-007 ENVITED-X Blockchain Identifier URN Schema * add Mimetype --------- Signed-off-by: jdsika <carlo.van-driesten@vdl.digital> Signed-off-by: Carlo van Driesten <carlo.van-driesten@bmw.de>
1 parent a73b30a commit 55d30f6

3 files changed

Lines changed: 174 additions & 0 deletions

File tree

EVES/EVES-007/eves-007.md

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
---
2+
eves-identifier: 007
3+
title: ENVITED-X Blockchain Identifier URN Schema
4+
author: Carlo van Driesten (@jdsika)
5+
discussions-to:
6+
status: Draft
7+
type: Standards
8+
created: 2025-03-04
9+
requires: ["EVES-001", "EVES-002", "EVES-006"]
10+
replaces: None
11+
---
12+
13+
## Abstract
14+
15+
This specification defines a **uniform resource name (URN) schema** for uniquely identifying smart contracts and transaction hashes across multiple blockchains, including **Tezos, Ethereum, and Etherlink**.
16+
It ensures **compatibility with CAIP-10**, **DID:PKH**, and other **chain-agnostic specifications** by referencing standard chain namespaces and `chain_id` definitions.
17+
The URN schema provides a structured approach for **interoperable cross-chain asset management** and **transaction referencing**, aligning with the ENVITED-X Data Space architecture.
18+
19+
## Motivation
20+
21+
In blockchain-based ecosystems such as ENVITED-X, referencing **smart contracts** and **operations** requires a **standardized, human-readable, and resolvable format**.
22+
Existing solutions such as **CAIP-10 (Chain Agnostic Improvement Proposal 10)** define **account identifiers**, but they do not extend to **contract addresses and transaction hashes**.
23+
The lack of a unified schema creates **interoperability challenges** when integrating **Tezos (FA2.1, TZIP-21 metadata)**, **Ethereum (ERC-721, ERC-1155 NFTs)**, and **Etherlink (Optimistic Rollup Layer 2)** into the ENVITED-X Data Space.
24+
25+
This EVES addresses the gap by defining a **URN schema** that:
26+
27+
- Provides a **consistent, chain-agnostic way** to reference **smart contracts and transactions**.
28+
- Aligns with **CAIP-10 conventions**, ensuring **namespace compatibility**.
29+
- Supports **Tezos implicit (tz1, tz2, tz3) and originated (KT1) accounts**.
30+
- Differentiates between **Layer 1 (Tezos, Ethereum) and Layer 2 (Etherlink)** transactions.
31+
32+
## Specification
33+
34+
### 1. URN Schema Definition
35+
36+
The URN schema follows a **structured format** using **blockchain namespaces**, ensuring **consistency and interoperability**.
37+
38+
#### 1.1 Smart Contract Identifiers
39+
40+
A **smart contract** is uniquely referenced using the following format:
41+
42+
```json
43+
urn:blockchain:{chain_namespace}:{chain_id}:contract:{contract_address}
44+
```
45+
46+
##### Smart Contract Example Mappings
47+
48+
| Blockchain | Namespace | Chain ID | Example URN |
49+
|-------------------------|-----------|-------------------|--------------------------------------------------------------------------------------|
50+
| **Tezos (Ghostnet)** | `tezos` | `NetXnHfVqm9iesp` | `urn:blockchain:tezos:NetXnHfVqm9iesp:contract:KT1PCaD2kmgCHy15wQ1gpqZUy9RLxyBVJdTF` |
51+
| **Ethereum (Mainnet)** | `eip155` | `1` | `urn:blockchain:eip155:1:contract:0xABC123456789...` |
52+
| **Etherlink (Layer 2)** | `eip155` | `42793` | `urn:blockchain:eip155:42793:contract:0x646B92C8f21e55DF67E766047E4bD7bEdF8DfA14` |
53+
54+
> **_NOTE:_**
55+
>
56+
> - The **namespace** follows **CAIP-2** (e.g., `tezos`, `eip155` for Ethereum).
57+
> - The **chain_id** follows **CAIP-10**, ensuring unique chain differentiation.
58+
> - **Smart contracts (KT1, 0x) are explicitly named** under the `contract` identifier.
59+
60+
#### 1.2 Transaction Hash Identifiers
61+
62+
A **transaction (operation) hash** is referenced using:
63+
64+
```json
65+
urn:blockchain:{chain_namespace}:{chain_id}:tx:{transaction_hash}
66+
```
67+
68+
##### Transaction Example Mappings
69+
70+
| Blockchain | Namespace | Chain ID | Example URN |
71+
|-------------------------|------------|-------------------|-----------------------------------------------------------------------------------------------------|
72+
| **Tezos (Ghostnet)** | `tezos` | `NetXnHfVqm9iesp` | `urn:blockchain:tezos:NetXnHfVqm9iesp:tx:oojtGLnHuS8og5WGf8jF8EoxTbegfrXvpxzvyPiW2GYZFGbFLaJ` |
73+
| **Ethereum (Mainnet)** | `eip155` | `1` | `urn:blockchain:eip155:1:tx:0xad0fa6b98b66bc19ab4936d1181697ac7f1e19755e1501e4e250434200a32cba` |
74+
| **Etherlink (Layer 2)** | `eip155` | `42793` | `urn:blockchain:eip155:42793:tx:0xad0fa6b98b66bc19ab4936d1181697ac7f1e19755e1501e4e250434200a32cba` |
75+
76+
> **_NOTE:_**
77+
>
78+
> - **Operation hashes on Tezos are prefixed with `tx:`**.
79+
> - **Ethereum and Etherlink transactions follow the Keccak-256 hash format**.
80+
81+
### 2. Standardization Considerations
82+
83+
- **CAIP-2 & CAIP-10 Alignment**:
84+
- The `chain_namespace` and `chain_id` **strictly follow** CAIP-2 & CAIP-10 conventions.
85+
- `eip155`, `tezos` **retain compatibility with existing tooling**.
86+
87+
- **Layer 2 Distinction**:
88+
- **Etherlink URNs explicitly specify their Layer 2 chain ID** (`ghostnet: 128123`, `mainnet: 42793`).
89+
- This prevents **collision between Layer 1 and Layer 2 assets**.
90+
91+
- **Human-Readable & Resolvable**:
92+
- This URN structure can be used in **metadata files (TZIP-21, ERC-721)**.
93+
- Enables **cross-chain verification of contracts and operations**.
94+
95+
### 3. Use Cases
96+
97+
- **NFT Metadata (TZIP-21, ERC-721, ERC-1155)**
98+
- Store **contract & transaction references** in **token metadata** crosschain.
99+
100+
- **Cross-Chain Credential Verification (EVES-005, EVES-006)**
101+
- Supports contract-based **Verifiable Credentials (SD-JWT VC)**.
102+
103+
- **ENVITED-X Asset Tracking**
104+
- Standardized **contract and transaction tracking** across chains.
105+
106+
### **4. MIME Type for Blockchain URNs**
107+
108+
To ensure structured and standardized handling of **URN-based blockchain references**, this specification defines a MIME type for representing **contract and transaction identifiers** in a machine-readable format.
109+
110+
#### **4.1 MIME Type Definition**
111+
112+
The following MIME type is introduced to denote **blockchain URNs** in JSON-based metadata and API responses:
113+
114+
```json
115+
application/vnd.eves.blockchain-urn+json
116+
```
117+
118+
#### **4.2 Rationale**
119+
120+
- **`application/`** → Indicates structured data.
121+
- **`vnd.eves.`** → Specifies the ENVITED-X standardization scope.
122+
- **`blockchain-urn`** → Clearly identifies the content as a **URN-based blockchain reference**.
123+
- **`+json`** → Specifies that the format is **compatible with JSON-based data structures**.
124+
125+
#### **4.3 Example Usage**
126+
127+
The MIME type is used in metadata files, API payloads, and verifiable credential documents where blockchain URN references are required.
128+
129+
##### **Example: NFT Metadata (TZIP-21, ERC-721)**
130+
131+
```json
132+
{
133+
"name": "Digital Twin Smart Contract",
134+
"artifactUri": "ipfs://bafybeidhmknqn4co...",
135+
"mimeType": "application/vnd.eves.blockchain-urn+json",
136+
"contractURN": "urn:blockchain:tezos:NetXnHfVqm9iesp:contract:KT1PCaD2kmgCHy15wQ1gpqZUy9RLxyBVJdTF",
137+
"mintingTx": "urn:blockchain:eip155:1:tx:0xad0fa6b98b66bc19ab4936d1181697ac7f1e19755e1501e4e250434200a32cba"
138+
}
139+
```
140+
141+
Example: API Response
142+
143+
```json
144+
{
145+
"status": "success",
146+
"data": {
147+
"urn": "urn:blockchain:etherlink:ghostnet:contract:0xDEF987654321...",
148+
"mimeType": "application/vnd.eves.blockchain-urn+json"
149+
}
150+
}
151+
```
152+
153+
This MIME type ensures interoperability across blockchain networks, metadata specifications (TZIP-21, ERC-721), and decentralized identity frameworks (DID:PKH, SD-JWT).
154+
155+
## Backwards Compatibility
156+
157+
This EVES introduces a **new URN schema** but does not conflict with **existing CAIP-10, TZIP-21, or ERC-721 standards**.
158+
It is fully backward-compatible with Tezos, Ethereum, and Etherlink **without requiring changes to current implementations**.
159+
160+
## References
161+
162+
1. [CAIP-2: Blockchain Namespace Specification](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md)
163+
2. [CAIP-10: Blockchain Account Specification](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md)
164+
3. [Tezos TZIP-21](https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-21/tzip-21.md)
165+
4. [Ethereum ERC-721 Standard](https://eips.ethereum.org/EIPS/eip-721)
166+
5. [Etherlink Documentation](https://docs.etherlink.com/)
167+
6. [Etherlink Network Information](https://docs.etherlink.com/get-started/network-information/)
168+
169+
## Implementation
170+
171+
- The ENVITED-X Data Space will **adopt this URN schema** in **metadata specifications** (see EVES-003, EVES-006).
172+
- Future EVES will explore **URN resolvers** for cross-chain asset lookup.

EVES/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@
1212
* [EVES-004: ENVITED-X Roles and Responsibilities of EVES Editors](./EVES-004/eves-004.md)
1313
* [EVES-005: ENVITED-X Contract Negotiation Process](./EVES-005/eves-005.md)
1414
* [EVES-006: ENVITED-X Scaling Architecture](./EVES-006/eves-006.md)
15+
* [EVES-007: ENVITED-X Blockchain Identifier URN Schema](./EVES-007/eves-007.md)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ The process on how to write, submit or change specifications in defined in [EVES
1818
| [004](./EVES/EVES-004/eves-004.md) | ENVITED-X Roles and Responsibilities of EVES Editors | Process | Review |
1919
| [005](./EVES/EVES-005/eves-005.md) | ENVITED-X Contract Negotiation Process | Process | Review |
2020
| [006](./EVES/EVES-006/eves-006.md) | ENVITED-X Scaling Architecture | Process | Draft |
21+
| [007](./EVES/EVES-007/eves-007.md) | ENVITED-X Blockchain Identifier URN Schema | Standards | Draft |

0 commit comments

Comments
 (0)