Every action below is a transaction on a public blockchain, signed in your browser with your own keys. Zoide builds the transaction and hands it to the network; it never holds the piece and never holds the money.
Listing is a contract, not a deposit
When you list a piece, it does not go anywhere. It stays where it is, wrapped in a lock that says one thing: this piece can only be released by paying its owner this exact amount.
The consequences are worth spelling out, because they are the reason the whole marketplace works without custody:
- Nobody can take it without paying you — not another user, not Zoide. The payout amount is part of the lock, not a promise.
- You can cancel whenever you like and get the piece back unlocked.
- You do not need to be present for the sale. The buyer does not need your signature, so a sale can happen while you sleep.
- You receive exactly the price you set. The fees are added on top and funded by the buyer.
At most one active listing per piece: listing again replaces nothing, it is simply not possible until you cancel the first.
What you are signing is that lock, and the only thing it asks you for is the amount:
Buying
A purchase is a single transaction in which the buyer funds, all at once:
| Output | Goes to |
|---|---|
| The listed price | the seller |
| The market fee | Zoide |
| The creator royalty, if the piece declares one | the creator |
| The referral commission, if there is a verified referrer | the referrer |
And the piece itself moves to the buyer's ordinals address in that same transaction. There is no escrow step and no "pending payment" state: either the transaction is broadcast and everything happened, or nothing happened.
Those outputs are exactly what the dialog lists before you sign — that is the same transaction, written out:
Two details that come out of doing it this way:
- A payout that would round to zero satoshis is dropped. A tiny percentage of a small price can round to nothing, and an output of zero would invalidate the whole transaction — so it is left out instead of breaking the purchase.
- A recipient with an invalid address is skipped and logged. It used to be skipped silently, which meant a mistyped royalty address just never got paid and nobody found out.
Transferring
Sending a piece to someone else is the simplest case: one transaction, signed with your ordinals key, that moves the piece to their address. There is a fixed fee (80,000 sats) and no way back — a transfer is not reversible, by anybody, for the same reason nobody can take your piece without paying: the chain does what the transaction said.
Check the address twice. A piece sent to a wrong-but-valid address is gone — which is why the dialog puts the warning above the field, not below it:
What is public
All of it. Addresses, amounts, dates, and the piece itself. Anyone can read the entire history of a piece or of an address in any blockchain explorer, without asking Zoide and without an account.
That is not a Zoide policy, it is what a public blockchain is — and it cuts both ways: it is also why you can verify everything above yourself instead of taking our word for it.
Wherever Zoide shows a transaction id, it comes with a way to copy it and a way out to an explorer:
Signing
Every one of these actions needs your keys, and your keys live encrypted in your browser. That is why an on-chain action asks you to unlock your wallet and a purely informational page does not.
Unlocking looks like this, and it is your own wallet asking — never a page you arrived at from a link:
Protect your wallet
Set a password to encrypt your keys locally.If a page asks you to unlock for something that should not need signing, that is worth reporting through an official channel — see Staying safe.