Launch
A creator lists a file, a secret, or access to a repository, with a price in SOL. No approval queue: the listing is live the moment it is published.
Private commerce on Solana
How it works
Live · Solana mainnet · no custody
A purchase in front of you: the buyer signs one transaction carrying two transfers and a reference key. The server reads the balances that changed and only then releases the key. Same arithmetic as production — 95 / 5, nothing parked in between.
§01 — The mechanism
A marketplace normally holds the payment and the goods, and then has to be trusted with both. Here the goods are encrypted before they leave the creator's device and the payment goes wallet to wallet. What is left for the platform is bookkeeping: did the chain move what the order says it should?
A creator lists a file, a secret, or access to a repository, with a price in SOL. No approval queue: the listing is live the moment it is published.
The browser generates a key and encrypts the content before upload. Storage only ever sees ciphertext; a leaked URL is useless.
One transaction, two transfers: 95% to the creator, 5% to the treasury, plus a reference key unique to this order. Either both land or neither does.
The server reads the confirmed transaction, checks every balance that changed, and releases the key. Decryption happens on the buyer's device.
§02 — What you can sell
Datasets, research, source code, API keys, private community links, repository access — and apps you host yourself, gated by a single ownership check. Pick what the buyer receives; the checkout is the same every time.
The buyer receives
Encrypted in your browser with a fresh AES-256-GCM key, then uploaded straight to blob storage — it never passes through the API. After payment the buyer fetches the ciphertext and unlocks it locally; the download starts in their browser.
The buyer receives
Up to 64 KB of text: an API key, a private invite link, credentials, a licence. Stored inline as ciphertext, shown to the buyer after the chain confirms the purchase.
The buyer receives
You give a repository and a token with admin rights to it; the token is checked against GitHub at launch and stored wrapped. The buyer types their GitHub username and is invited read-only. One account per purchase.
The buyer receives
Host your app, API or agent wherever you like. Sell "access" as a product, then have your app ask EVERYNTH whether the visitor's wallet bought it. Public, CORS-open, one request.
§03 — The encryption
Three parties, one key. The creator's browser makes it, the buyer's browser uses it, and the platform holds it wrapped so that a purchase at 3 a.m. can be delivered without the creator being awake. Follow the packets.
§04 — Lifecycle
Two are signatures from the creator, two from the buyer, and one is the chain doing what it does. The invariant across all five: nothing is released until a confirmed transaction moves exactly what the order froze.
Content encrypted in the browser, ciphertext uploaded, key wrapped and stored. Price in lamports, minimum 0.02 SOL so the fee clears rent.
The server freezes the payout terms — creator, amounts, treasury — and mints a reference key unique to this order. Pressing Buy again reuses it.
Two SystemProgram transfers in one transaction, reference attached. Confirmed at "confirmed" commitment by the buyer's own RPC.
Fetches the transaction, checks the reference, then the lamport delta of every recipient. One signature can settle one purchase, ever.
Key and ciphertext handed to the buyer only. Decrypt, download, or be invited to the repository. Re-openable from Purchases.
§05 — The surface
Nothing is admin-only except takedowns. There is no upgrade switch on the payment path because there is no program to upgrade: the transaction is two transfers anyone can inspect on Solscan.
| Route | Effect | Caller |
|---|---|---|
| POST /api/session | Sign in with a wallet signature; sets an HMAC session cookie | anyone |
| POST /api/upload | Short-lived token for a direct encrypted upload to storage | signed in |
| POST /api/products | Launch a file, secret or GitHub product | creator |
| PATCH /api/products/:id | Edit listing details and cover; content is immutable | creator |
| POST /api/orders | Freeze payout terms and mint a reference key | buyer |
| POST /api/orders/:id/confirm | Ask the server to verify the chain; never trusted, only checked | buyer |
| GET /api/purchases/:id/content | Key + ciphertext (or its URL) for a paid purchase | buyer |
| POST /api/purchases/:id/github | Invite the buyer's GitHub account read-only | buyer |
| GET /api/verify | Does this wallet own this product? Public, CORS-open | anyone |
// gate your own app with one request const res = await fetch( "https://everynth.org/api/verify?product=" + PRODUCT_ID + "&wallet=" + wallet ); const { owned, since } = await res.json(); if (!owned) location.href = "https://everynth.org/p/" + PRODUCT_ID; // prove wallet control first — a signed message, // exactly as EVERYNTH does at sign-in.
§06 — Deployment
The payment path has no program of ours and therefore no admin key, no pause, no upgrade. What can go wrong is bounded to the one order in front of you — and a paid order that failed to verify recovers itself from the chain on the next click.
Fee = floor(price × 500 / 10 000) lamports; creator share = price − fee. The two always sum to the price exactly, there is no rounding residue for anyone to keep.
Every part of the checkout is engineered so the platform never
holds money or readable goods, giving creators a rail they can
launch on, sell through and deliver from in production.
Of every sale,
straight to the creator
Per file, ciphertext only
ever reaches storage
One request gates
your own app or agent
§08 — The design
There is no smart contract to audit, because two transfers do not need one. What there is instead is a strict split of who knows what: your device, our server, and the chain. Hover a layer to see its view of a purchase.