NMC-V Standard
The alternative and more advanced way to mint especially larger on-chain NFTs is to store the data fragments in the update history of the record itself and declare the range of transactions (TxIDs) in the final declaration record. These partial data records then exist one below the other (vertically) in the update history, so this NFT standard is called
Namecoin Vertical (NMC-V).
• The direction of the update history MUST be first data fragment first, ideally starting already with the
name_firstupdate OP followed by the subsequent parts.
• The final record MUST include the JSON-formatted key
"hex-data" with the declarations (sub-keys)
"Entry TxID" and
"Final TxID" (case-insensitive) to define the dataset, first data fragment first. The declaration of the raw data set SHALL be preceded by the sub-key
"Properties" (case-insensitive) with the specification of the size in bytes and the total number of data fragments. Example record
nft/quantum.gif:
"Hex-data":{"Properties":"8.86 MB (9,296,824 bytes), 17879 parts","Entry TxID":"3774e346b46d5531cc960355a1ad35b4a2984290a0731f3f9dea131ec2fbcf8a","Final TxID":"b87c586088daa511dbb5da63c8aa8795304a1a11af5d2bf69c02a16b9d308cdf"}
• All updates of a dataset, including the
name_firstupdate OP, the closing declaration record and all subsequent renewals, SHALL be done on the same token (NMC address of the colored coin) via custom raw transactions. This satisfies the sometimes strict interpretation of the term "non-fungible
token" by some community members, and furthermore helps keeping the key-pool and thus the wallet file small.
Extended declaration, NMC-V+ Standard
The NMC-H and NMC-V standards render the 520-byte limit for on-chain data obsolete in many contexts. However, this limitation still applies by default to the declaration record of an NFT and to regular Web3 ID records. Since the declaration record of an NFT closely resembles the structure of a typical Web3 ID, containing structured links and data to be shown in the block explorer, it is possible to apply the NMC-V standard to these records themselves. This enables splitting them into multiple records, each adhering to the 520-byte limit, within the asset’s update history as well, followed by the closing extension record defining the range of update transactions.
As this extended declaration applies to payload datasets minted under various standards while adhering to the NMC-V Standard itself, this extension is called
NMC-V Plus (NMC-V+).
• The extended declaration may be applied to all NFT standards (NMC-B,
NMC-H, and
NMC-V) as well as to regular
Web3 IDs across all namespaces.
• The order of the update history MUST follow a "first data fragment first" sequence.
• The closing extension record MUST include the outer JSON-formatted key
"NMC-V declaration", followed by the inner declarations (sub-keys)
"Entry TxID" and
"Final TxID" (case-insensitive), first data fragment first. Example record
namecoin.nmc:
{"NMC-V declaration":{"Entry TxID":"41ffe8f0dc19f021ebeba098621b239145ce7f041d7440c0db3f1bffa8a37194","Final TxID":"fa4fb6fcf1e92fe5f29481dd51e5549b5d4d90306210717b58a278523623bb3c"}}
• All updates to an NFT containing payloads, such as image data, prior to the extended declaration, including the closing extension record and all subsequent renewals, SHALL be executed on the same token (the NMC address of the colored coin) using custom raw transactions. Example record in the
nft/ namespace:
nft/Comedian.jpg
When applied to a regular Namecoin domain, this extension allows for the storage of unlimited structured text, including headers, subheaders, and links to connected records, thus hosting an on-chain blog entirely using Namecoin’s blockspace, mined and secured by the Bitcoin network. Call the emoji domain
💎🙌🏻.crypto to see the first-ever blog post minted fully on-chain with a total size of 4310 bytes.
To browse domains and ID records formatted in the NMC-V+ standard, you may take the connected
Asset Viewer, which automatically renders the data in its JSON structure.
Proof of Minting (PoM)
Please note that only 25 pending updates can be broadcast at a time. While it is technically possible to generate and broadcast an unlimited number of successive updates using a series of undocumented command-line start parameters, these long chains of unconfirmed transactions would not be accepted by the mining nodes as they use the default settings to avoid flooding the network.
Furthermore, it should be noted that in most cases it will take two blocks to confirm a batch of 25 transactions. The timestamp written to the blockchain does not (and cannot) reflect the exact moment a new block is finalized. Instead, it marks the point at which the mining node takes a snapshot of the current mempool. Due to merged mining with Bitcoin, the snapshot cycles of both chains are asynchronous, typically resulting in two different timestamps that can differ by a few minutes. Below a recent example of two Namecoin blocks:
Block 736153
Timestamp: Tuesday 10th of September 2024 12:25:55 (GMT/UTC)
Blockhash:
5cde2e02dbf39717247845e79a9edf002ad5bf20e48fb5fc02488006313a507b
Parent-Timestamp: Tuesday 10th of September 2024 12:37:33 (GMT/UTC)
Parent-Blockhash:
000000000000000000039d605853d96b1a4b7c1dec51056845614d4f856de5d6
Block 736154
Timestamp: Tuesday 10th of September 2024 12:37:40 (GMT/UTC)
Blockhash:
63a414392115ee227fa281b9b83281ae286273a6fbae39108959960f5fa2a157
Parent-Timestamp: Tuesday 10th of September 2024 12:51:15 (GMT/UTC)
Parent-Blockhash:
000000000000000000030df2370a5e2c5587cb9a6efc6e69068d485874a554af
The submission of a new batch of updates to the Namecoin network depends on a third timestamp: the local receipt time of a new block, which is written to the debug log and aligns with the timestamp of the next (future) Namecoin block. This receipt time may vary by an additional 50-150 milliseconds on average across different geographic locations. Due to this latency in global synchronization and the instantaneous start of the mining process with the propagation of the last block, along with the asynchronous nature of merged mining, the new chain of transactions often does not reach the mining nodes’ mempool in time to be included in the next block.
So for larger files of a few MB, it can take up to a week to mine the entire NFT. This time commitment introduces an inherent Proof of Work (PoW) mechanism, requiring the creator to thoughtfully engage in the minting process particularly for larger NFTs, thus specified as
Proof of Minting (PoM). The effort required to mint larger NFTs naturally limits their quantity, fostering scarcity and driving demand for premium assets. It also prevents oversaturation by low-effort collections and preserves the integrity of both the P2P network and the blockchain.
A prime example of the risks of unregulated minting is the
’Ordinals’ overload on Bitcoin, where the lack of deterrents beyond miner fees allow users to flood the mempool and bloat block space with mass-produced NFTs and excessive payload data. This Layer 2 overlay protocol assigns imaginary units of numbered satoshis to claim ownership of payload data hacked into the invisible witness data fields of unspendable transaction inputs, limited by Bitcoin’s virtual block size limit of 4 MB. This technological nonsense regularly overwhelmed Bitcoin’s network and undermined its primary purpose – facilitating payments.
Namecoin, launched in April 2011 as a sidechain of Bitcoin, was specifically designed to handle non-payment data, offloading these transactions from Bitcoin’s parent chain. So by design, Namecoin NFTs are entirely based on Layer 1, written directly to the transaction’s output and cryptographically tied to the access token. Moreover, minting NFTs on Namecoin following the NMC-V standard imposes no inherent technical size limit, not even restricted by the maximum block size, since the data is distributed across multiple blocks.
Explore and restore our historic Namecoin and Bitcoin logos, along with rare collectibles and utility assets, such as whitepapers and executables, preserved in the
NFT Time Capsule!