For your reference, you can view the original white paper content at this link: ZERO Inscription White Paper
We’ve also provided an example for implementing the fungible token asset protocol (zero-20) under this standard, you can find it in our site’s documentation
We have our official multi-chain marketplace launched already: https://glypher.io, soon we will implement our inscription protocol on our platform.
ZERO Inscription White Paper
Simple Summary
A universal standard protocol for inscriptions, applicable across all chains, enhancing interoperability and functionality in the blockchain ecosystem.
Background
The landscape of blockchain inscriptions, especially on EVM networks, is currently navigating through a phase of fragmentation and inconsistency. Various projects across these networks have adopted differing methodologies for key inscription activities, including minting, transferring, and deployment. This lack of uniformity, along with the absence of universally accepted protocol standards, presents significant challenges. It hinders not only the ease of development and user experience but also the overall progression and scalability of the inscription ecosystem.
Centralized indexing methods and the absence of a standardized approach to trading have further complicated the effective management and circulation of inscription assets. Furthermore, the current limited diversity in inscription formats not only restricts innovative issuance and trading mechanisms but also constrains the broader potential of decentralized applications (DApps) built on these platforms.
We propose the ZERO Inscription protocol, designed to standardize and unify operations across blockchains and enable on-chain inscription migration, thereby unlocking smart contract capabilities and broadening opportunities. This protocol not only addresses current limitations but also paves the way for innovative DApps, leveraging diverse inscription capabilities for a more dynamic blockchain ecosystem.
Abstract
This document outlines a standard protocol for blockchain inscriptions, aiming to standardize the process for publishing various types of digital assets across blockchain networks. It seeks to unify fundamental inscription operations, making them universally applicable.
Motivation
A standard and interoperable protocol that allows inscriptions on all chains to be integrable by various applications, including wallets, exchanges, and decentralized apps (dApps). This will unlock the flexibility by enabling seamless interaction between inscriptions and smart contracts.
Specification
To ensure the extendibility of the inscription protocol, we define a standard for the Asset. Under the asset category, multiple Protocols can be published. Each protocol possesses a unique set of Operations.
The advantage of this is to unlock the extendibility of ZERO protocol. For example, under the Non-Fungile Tokens asset category, we can publish ZERO-721 and ZERO-1155 protocols with their certain set of operations.
All inscriptions that follow the community-agreed standard will be interpreted by the indexer, each inscription is fit into some specific operation under a certain Asset type.
FIFO (First-In First-Out) Rule
All protocols under ZERO Inscription must adhere to the FIFO rule. If the sha256 hash value of the UTF-8 content of a ZERO Inscription is duplicated, subsequent inscriptions are deemed invalid. Indexers are advised to adjust the delay in syncing raw data from the chain to prevent misinterpretation due to chain reorg.
Inscription to Smart Contract Migration
All the protocols under ZERO Inscription should have the availability to migrate on-chain. This requires a migration protocol to interconnect inscription and smart contract seamlessly.
- One can deposit the inscription asset to a unified address
- The migration protocol should mint the equivalent amount of tokens through the regarding contract once the deposit transaction is confirmed
- The depositor can withdraw the inscription by invoking the smart contract’s burn method at any time.
Cross Inscription Wrapping
The Cross Inscription Wrapping in the ZERO Inscription protocol enables seamless integration of assets from various blockchain inscription systems into ZERO’s ecosystem (erc-20, prc-20, bsc-20 etc…). This feature facilitates the conversion of external assets into a ZERO-compatible format, maintaining their inherent properties while allowing them to leverage the advantages of the ZERO ecosystem. The process involves a secure wrapping and unwrapping mechanism, ensuring compatibility and compliance with ZERO standards.
Handling Minting Fees in a Permissionless Ecosystem
In the ZERO Inscription protocol, deployment is designed to be both permissionless and free. However, we recognize a potential challenge: the risk of name squatting, where individuals could monopolize desirable names and set their own minting fees, thus undermining the ecosystem’s fairness.
To address this, before the community agrees on a more permanent solution, projects that wish to include minting fees will be subject to a whitelisting process. This will be managed by specific, trusted wallets controlled by the ZERO Inscription team. This interim measure is intended to ensure that only legitimate and value-adding projects are able to implement minting fees, thereby maintaining the integrity of the ecosystem until a more decentralized approach is developed.
Asset Categories
Fungible Tokens
Semi-Fungible Tokens
Non-Fungible Tokens
Domain
Operation Standard
Operations in the ZERO Protocol are derived from two blockchain sources: Transaction Data and Transaction Logs.
- Transaction Data: Sent with transactions by Externally Owned Accounts (EOA), starting with “data:,” followed by operation data in JSON format.
- Transaction Log: Produced by smart contracts, enhancing functionality like batch operations or advanced features like marketplaces.
The two fields z and p must exist for all protocol operations:
- Field z: Represents the system scope
- Field p: Represents the specific protocol
Transaction Data
In the ZERO Inscription protocol, all inscription content transmitted through transaction data should begin with “data:,” followed by the operation data in JSON format.
Each operation must clearly define its data with three key attributes for each field in the JSON data:
- Key: The specific field key.
- Required: Indicates whether the field is required for the operation.
- Desc: Describes the business logic or purpose of the field.
Example - Defining the ZERO-20 Protocol’s Deploy Operation:
The following is an example of how to define the deploy operation for the zero-20 protocol:
data:,{"z": "zero", "p": "zero-20", "op": "deploy", "tick": "zero", "max": "210000000000", "lim": "10000", "ma": "0x0000000000000000000000000000000000000000", "mf": "0.01"}
Each parameter in this JSON structure is defined as follows:
Param |
isRequired |
Description |
z |
Y |
System Scope: Indicates its part of the ZERO Inscription, must be lowercase, strictly to zero |
p |
Y |
Protocol: zero-20, must be lowercase, strictly to zero-20 |
tick |
Y |
Tick: symbol of zero-20 with max length 20, only 26 alphabet letters and numbers are allowed, case-insensitive. |
Eg. ZERO = zero |
|
|
op |
Y |
Operation: deploy |
max |
Y |
Token total supply (must be divisible by lim), limited to uint256 |
lim |
Y |
Limit Per Mint max%limit=0 |
ma |
N |
Mint Address: If set, only transactions to = ‘ma’ are valid mints. Must be used in conjunction with ‘mf’. If not set, only transactions where ‘txFrom=txTo’ are valid mints. |
mf |
N |
Mint Fee: If set, only transactions with a value (decimal) = ‘mf’ are valid mints. Must be used in conjunction with ‘ma’. Can be set to 0. |
Transaction Log
Incorporating transaction logs emitted by smart contracts can significantly enhance the protocol’s functionality. Each operation through the transaction log must identify the contract event, with detailed specifications required for each event.
Here’s an example of defining the zero-20 protocol contract transfer operation:
event zeroinscription_ftTransferForListing(
bytes32 indexed z, // zero
bytes32 indexed p // zero-20
address indexed from,
address indexed to,
bytes32 id,
uint256 amount
);
Architecture
ZERO Inscription works as the layer zero that naturally support all assets for cross-chain transfer.