DOCS
A practical guide to the onchain art press, marketplace, feed, contracts, verification marks and moderation system.
PUBLIC BETA · ETHEREUM SEPOLIA + SHAPE SEPOLIAOverview
ETCH'D is an onchain art marketplace and press in the CypherPunks ecosystem. It stores the exact artwork bytes in EVM contract code, deploys artist-configured sale contracts from pinned templates, and provides discovery, profiles and a secondary market around that permanent core.
The marketplace is in public beta. Ethereum Sepolia and Shape Sepolia use test assets with no real-world value. Mainnet is not live.
0xC0DE address or inclusion in the feed is not an endorsement. Verify the artist, contract and transaction before spending funds.Etching a work
- Configure: the artist chooses the file, title, sale type, price or reserve, royalty and optional collection.
- Permit: the artist signs an EIP-712 permit bound to the exact file, canonical inscription store and relay escrow.
- Fund: the artist deposits the quoted relay amount into a permit-specific vault in
RelayEscrow. - Write: the relayer fronts gas and writes the file to
InscriptionsV2in ordered batches. - Seal: the store seals the inscription only when the byte count and rolling content root match the signed permit.
- Deploy:
Factoryverifies the creation-code prefix and deploys the selected auction, edition and optional collection template. - Claim: the artist signs the authorship claim and the service admits the canonical work to discovery.
The relayer can collect only the authorized amount and only after the exact work seals. An aborted run returns the vault. If the service disappears, the artist can rescue the deposit onchain after the 48-hour lock and any bounded run lease.
Contracts and addresses
These are the current public-beta deployments. All addresses below are testnet addresses.
| Contract | Address |
|---|---|
InscriptionsV2 |
ETHEREUM SEPOLIA 0xf8B7abE72971eCed08E8dae3dFd5F84DAd214b06SHAPE SEPOLIA 0x34f826093316045F9ff3802729257442B93447dd |
Factory |
ETHEREUM SEPOLIA 0xb8B00f77a71A32330C53e1887b83c39aAA0dF842SHAPE SEPOLIA 0x7d88033319E502F96AAB1c8065Be8a1A4779a947 |
ListingBookV2 |
ETHEREUM SEPOLIA 0xDE30c111c7303B3Aff09eA67acc9645F7eFF8B50SHAPE SEPOLIA 0x9737b31AB73C2799921b5e192e92ADc73ECd8fC3 |
RelayEscrow |
ETHEREUM SEPOLIA 0xbad2F67D18caA4710B5115D72722d81C4421F39FSHAPE SEPOLIA 0x36a4dD96b4Af05Ae2EBE0c4E49fC4c9fC18F203C |
| Shared constant | Address |
|---|---|
| Treasury / fee recipient | 0x246530326ae20477ebbD4BeB2C28EC186Eb0Dd4F |
| Universal CREATE2 deployer | 0x4e59b44847b379578588920cA78FbF26c0B4956C |
What each contract does
InscriptionsV2stores and seals the exact artwork bytes.Factorydeploys only pinned collection, auction and edition templates and records their provenance.ListingBookV2manages public and private listings, token offers, collection offers and pull-payment settlement.RelayEscrowholds an artist's press-run deposit and gates relayed storage calls.Auction1of1,EditionSaleandCollectionare deployed per work, so there is no single shared address for them.
0xC0DE prefix is a visual marker only. Anyone can grind such a prefix with the public CREATE2 deployer. Canonical provenance comes from a listed ETCH'D Factory: isCanonicalSale(address) or isCanonicalCollection(address) must return true, and saleRecord(address) identifies the artist, collection, inscription store, inscription ID, deploy block and configuration hash.Auctions and editions
1 of 1 auctions
- A 24-hour clock starts with the first bid.
- The artist may set a reserve; zero means no reserve.
- Late bids extend the end by the anti-snipe period selected at deployment.
- The bid increment is fixed at deployment, with a 0.0001 ETH floor.
- Anyone may settle after the auction ends.
- If an auction remains unsettled two days after its end, the high bidder can reclaim the bid.
Editions
- The price and maximum supply are fixed at deployment; the cap is between 1 and 100.
- An edition may have an onchain opening and closing time.
- Each mint pays the artist and fee recipient. If a receiver rejects payment, the amount remains withdrawable.
- The artist may close a run by reducing its cap to the number already minted. A closed run cannot reopen.
Fees, royalties and the secondary market
| Action | ETCH'D fee | Other amounts |
|---|---|---|
| Primary auction or edition sale | 1% | 99% to the artist |
Trade through ListingBookV2 |
1% | Declared ERC-2981 royalty up to 10%; remainder to the seller |
| Press run | None | Onchain storage and deployment cost, paid once to the network; the exact amount is shown in the bill before you sign |
The two 1% market fees and treasury address are constants in the deployed bytecode. External marketplaces are not forced to honor ERC-2981 royalties, and the ETCH'D secondary fee does not apply outside ListingBookV2.
A public listing leaves the token in the owner's wallet until purchase. Offers are held by the book until accepted or cancelled. Settlement splits the payment into the royalty, ETCH'D fee and seller proceeds.
How the feed works
The feed starts from the registry of admitted works, removes house-blocked works, and checks sale provenance against the appropriate ETCH'D factory. The feed switch changes the lens over that shared catalogue:
| Lens | What it shows | What “Latest” means |
|---|---|---|
| Auctions | 1 of 1 auction works, with live sales first and sold works retained as history. | Most recent bid, sale or etch activity. |
| Editions | Edition works, including live inventory and completed runs. | Most recent edition mint, sellout or etch activity. |
| Secondary | Any work with at least one standing public listing in ListingBookV2. |
Newest standing listing, so secondary activity does not bury primary work in the auction or edition rooms. |
| Collectors | Works that a qualifying badged collector bought, won, bid on or liked. Cards identify the relevant collectors. | Most recent qualifying collector action. |
| Following | Works made by people you follow, plus works they bought, won, bid on, currently hold or liked. | Most recent activity connected to someone you follow. |
The Following lens requires a connected wallet so the page knows whose follow list to use. Collector qualification means either HASH'D coverage, or an X handle plus CypherPunks ownership in the wallet's linked group.
Manual sort options include Latest, Ending Soonest, Most Bids, Almost Gone, Lowest Price, Highest Price and Heaviest. Some sorts appear only where they make sense: Ending Soonest and Most Bids for auctions, and Almost Gone for editions.
The client refreshes the feed without forcing new cards into the visitor's current scroll position. A “new” notice lets the visitor load them deliberately.
The CypherPunks algorithm
The CypherPunks button turns on an optional server-side admission and ranking layer. It does not change a work's sale contract, price, ownership or royalty.
1. Admission
A work enters the algorithmic feed only after at least one CypherPunks-holding wallet group has liked it. Likes are signed social actions and are offchain.
2. Collector voice
Each qualifying linked-wallet group's voice is earned from:
- the accumulated hold-days of every CypherPunk it currently holds, with at least one day of weight per punk; and
- 30 day-equivalents for each line the group has written to the onchain mailing list.
All wallets in a mutually signed linked group are treated as one collector. Their punk weight is combined, but likes from multiple wallets in the same group count only once.
3. Market pulse
Freshness contributes separately:
- 60% of the pulse comes from mint/etch recency, with a seven-day half-life.
- 40% comes from recent economic activity, the latest primary sale or edition mint, with a three-day half-life.
- The economic component receives a 1.5× boost when a current owner belongs to a CypherPunks-holding linked group. The total pulse is capped at 1.
4. Final score
score = 0.5 × normalized collector voice + 0.5 × market pulseCollector voice is normalized against the strongest eligible work in the current result set. With the algorithm on and the sort set to Latest, the server score controls the order. Choosing a manual sort keeps the punk-admitted set but reorders it by the selected field. The algorithm preference is remembered in the browser.
Verification badges
Badges describe a specific relationship recorded by the press. They are not identity checks, KYC, authenticity guarantees or endorsements.
| Mark | Meaning | Does not mean |
|---|---|---|
| Blue account check | An X account is linked to this wallet and confirmed by the ETCH'D team. | That ETCH'D endorses the person, work or price, or that every off-platform claim by the account is true. |
| CypherPunks badge | A CypherPunk is held in the wallet's linked group. Artist or collector. Shown beside a checkmark or on its own; with the blue check it is the qualification the Collectors lens uses. | Anything beyond the account and the holding. Not an endorsement, not authorship, not provenance. |
| Gold featured check | The confirmed X account above, and has been published on HASH'D, the editorial arm. The team sets this link. | Investment approval, guaranteed authorship, contract provenance or special onchain privileges. |
Badges can appear beside names in feed cards, work pages, comments, profiles, artist lists, activity, search and the salon. Following is separate: it is the connected visitor's personal relationship with that wallet.
0xC0DE prefix does not verify a person.Moderation
The blockchain retains what was written to it. ETCH'D controls only what its own service displays and serves.
Sensitive veil
A sensitive work stays available but appears behind a click-to-reveal veil. The artist can self-label it at etch time; the house can label it; community reports or local screening can also apply the veil.
Community reports
- A wallet must be signed in to report.
- Reports are deduplicated by linked-wallet group: one collector, one report.
- A CypherPunks-holding group has weight 3; another signed-in wallet has weight 1.
- A total report score of 5 automatically veils an unreviewed work.
- Reports can veil a work but cannot block or erase it.
Local image screening
After a successful etch, PNG and JPEG works are screened by a model running on the ETCH'D server. Artwork is not sent to a third-party AI service. High-confidence results can apply the sensitive veil; medium-confidence results create a note for human review. GIF, SVG, HTML, video, oversized images and failed classifications rely on artist labels, reports and house review.
House decisions
- Clear: removes a veil and prevents report arithmetic or the model from automatically re-veiling the work.
- Sensitive: keeps the work served behind the reveal veil.
- Blocked: removes the work from the feed, profiles, work route, share route, artwork gateway, byte endpoint and thumbnails served by this press.
What is onchain and offchain
| Onchain source of truth | Offchain discovery layer |
|---|---|
| Artwork bytes, MIME type, byte count and sealed inscription state | Profiles and X associations |
| Artist, collection, sale and inscription relationships | Follows, likes, comments and bookmarks |
| Auction bids, settlement and reclaim path | Feed ranking, thumbnails and moderation labels |
| Edition price, cap, window, mints and close state | Email alerts and notification preferences |
| Secondary listings, offers, payouts and fee rules | This website and its cached chain index |
The offchain layer makes the market usable, but it is not the source of truth for the artwork or sale contracts.
Security and support
The repository includes Foundry tests, pinned artifacts, deployment records, audit evidence and release-verification scripts. Review reduces risk; it does not eliminate it.
- Before a transaction, confirm the network, destination contract, value and fee summary shown by the wallet.
- For a sale, verify factory provenance on the work's chain rather than trusting the page or its address prefix.
- Testnet assets have no real-world value.
- Report vulnerabilities to kenny@cypherpunks.art with
SECURITYin the subject.
See the repository's contracts/, scripts/ and docs/audit/ directories for implementation details, tests and review evidence.
Code: GPL-3.0-only. Public beta documentation updated 31 August 2026.