the covering at the boundary

On the record.

The veil covers the note and the operator. The title is on the record. Stamp a leaf, transfer it, and read the owner from the contract.

reading registry

A title that lives in someone else’s database dies with them.

If the only proof of a claim is a row you cannot query, you are asking the public to trust an operator. That is a hide, even when the intent is honest.

The note stays in the browser. The chain stores only the leaf. Anyone can call ownerOf and total on the contract. There is no operator server to believe.

What is on the record

Stamp a leaf

Hash assetId and meta into a leaf. stamp writes it once. Zero leaves and duplicates revert.

One owner

ownerOf is the record. Index and count sit on the same contract. No private ledger to reconcile later.

Transfer the title

The current owner can pass the leaf to another address. Not-owner and zero targets revert. The count does not reset.

No operator API

The console talks to the chain. Verify is a read call. If the registry address is zero, the product is not deployed.

Three steps

1
Form the leaf

leaf = keccak256(abi.encodePacked(assetId, meta)) with both values as bytes32.

2
Stamp from a wallet

Stamp and transfer need a wallet. The registry address must be set first.

3
Verify without a wallet

Anyone can eth_call ownerOf. If the RPC fails, the console reports the error. It does not invent a success.

Open the console

Hash a note, stamp it, and confirm the owner from a read call. The title is on the record. This build does not offer a token.