UNDER THE SURFACE

One artwork.
Independent participants.

A guide to the records, contracts and permissions behind Artwork Commons. Use the story demo to explain the experience, then this page to examine how it works.

Follow Blue Mountain ↗Contract mapTerms & enforcementDemo environments

The same work, across different contexts

In the illustrative story, EON MUN creates Blue Mountain. Alex Chen buys it, two galleries include it in exhibitions, and Rowan Ellis later buys it from Alex. Its artist attribution and canonical artwork terms remain attached to the original work. A later exhibition records a loan without implying another sale.

Each gallery references the artwork’s registry and token. It does not mint a replacement identity. Works by Mika Sato can appear in the same exhibition while retaining their separate artist records.

The contract map

ContractResponsibilityAuthority
ParticipantRegistryLinks an artist’s art registry or a gallery’s exhibition registry beneath their name.The participant controls attachment.
ArtworkRegistryIssues an ERC-1155 singleton, immutable genesis, royalty terms and owner presentation.The original artist issues; the current owner controls owner-derived presentation.
ArtResolverPublishes the artwork or exhibition manifest contenthash and metadata URI.Records are established by the creating registry.
GalleryRegistryCreates exhibitions, receives submissions and records the gallery’s acceptance.Only the gallery accepts or declines submissions.
MandateRegistryRecords scope, expiry, minimum price, commission and gallery acceptance.The current owner grants authority; an ownership change invalidates old mandates.
SimpleSettlementSettles direct and gallery sales, transfers ownership and credits withdrawable proceeds.Checks the listing, owner, price and applicable mandate before settlement.

What ENSv2 contributes

Hierarchical registries let each participant manage their own namespace. An artist’s collection and a gallery’s exhibitions remain independently controlled, while their records can reference each other.

eonmun.eth
└── art → ArtworkRegistry
    └── blue-mountain → ArtResolver → IPFS manifest

atelier.eth
└── exhibitions → GalleryRegistry
    └── tokyo → exhibition manifest + artwork references

The platform checks name ownership or delegated subregistry permission before linking a participant registry. ArtworkRegistry builds on ENSv2’s PermissionedRegistry and ERC1155Singleton. Names resolve through the registry hierarchy to a contenthash; the original artwork record remains identifiable as ownership changes.

Name permissions and gallery mandates are separate. Permission to manage a name does not itself authorize a gallery sale. Application mandates are scoped to the artwork, current owner and ownership epoch. MandateRegistry directly inherits the pinned ENSv2 EnhancedAccessControl implementation: resource = mandate ID, LIST = 1, EXHIBIT = 16, SELL = 256. The gallery receives regular roles, not role-administration powers or artwork ownership. Revocation removes those roles; acceptance, expiry and ownership epoch add lifecycle checks.

Pinned ENSv2 source · ERC-1155 · ERC-2981

One standard policy for every artwork

Every newly issued artwork uses the same immutable policy, identified by ArtworkRegistry.TERMS_ID. Every exhibition points back to that work. Neither artists nor galleries can customize its clauses. Artist resale royalties belong to the artwork; gallery commission belongs to a particular mandate or sale. They are not interchangeable.

ClauseDemo presentationCurrent contract behavior
Artist royalty5% of a supported resale to the original artist.New registries require exactly 500 basis points payable to the original artist. SimpleSettlement credits this on supported resales; the original artist’s primary sale is exempt.
Holding period180 days after each ownership transfer; first sale is immediate.ArtworkRegistry rejects single, batch and operator transfers before resaleAllowedAt. Both listing paths check saleAllowed. The clock uses block timestamps. Exhibition loans remain possible.
Gallery commissionAgreed separately; 10% in the example sale.Stored in the mandate and credited on gallery settlement. Direct sales do not charge gallery commission.

The policy is compiled into the registry with no setter. New issuance rejects alternative royalties and custom agreement fields. An artist purchase option is future work and is not included in the current canonical policy. Existing deployed contracts are immutable and do not gain this policy through a website update; legacy registries are labelled in the interface.

ERC-2981 reports royalty information; it does not enforce payment across every marketplace or transfer. Token ownership and an exhibition statement also do not independently verify physical custody or legal title.

Reading the history

Creation, exhibition acceptance and purchases are different events. The story labels them with dates, participants and links to the relevant work or exhibition. A purchase changes the current owner; an exhibition does not. Older exhibitions remain part of the work’s history.

Dated issuance and exhibitions store the supplied historical date separately from the actual block recording time. Galleries can record an establishment date once, before their first exhibition. All dates must be in the past or present. ArtworkRegistry.recordHistory lets the original artist or current owner append attributed historical reports, including past purchases. These reports do not transfer the NFT, prove past payment, or change the resale holding period. The contract layer also exposes issuance, submission, decision, settlement and transfer events. A production history reader must index those events across relevant registries and preserve their transaction evidence. The richer multi-artist timeline shown in the story demo is curated fictional data, not a claim that those sales happened on Sepolia.

Choose the right demo

Story demo

Two artists, two galleries, multiple exhibitions and successive collectors. Session storage holds the records. No wallet, payment or chain transaction is involved.

Open the story ↗

Local contract demo

The separately configured Anvil environment uses the pinned official ENSv2 deployment on chain 31337. It seeds eonmun.eth and atelier.eth and supports actual local transactions for creation, submission, acceptance and purchase. Its seed is separate from the richer story data.

Local setup and verification ↗

Public wallet workflows use Ethereum Sepolia. A successful local test or fictional story entry is not evidence of a public-chain transaction. Inspect the connected environment and transaction receipts for live demonstrations.