All work

Trade Window

2026gno.land, startup product

Trade Window — a strongbox with two keys on a wooden bridge at dusk

An MMO trade window, written as a contract.

In a game the server is the trusted party: both players put items in, both press accept, and everything swaps at once or not at all. On gno.land a realm plays the server, and nobody can change it once it is deployed. Trade Window is another startup product I built for the gno.land ecosystem, in the same family as 67: rooms for two, for GNOT, GRC20 tokens and GRC721 NFTs.

A walkthrough, 66 seconds, with sound

Ready means this version, exactly.

Every change counts. A join, a deposit, a take-back or a named price raises the room’s version and clears both ready marks, so nobody is held to contents they did not see.

The second ready mark settles. Lock names a version. When the other side locks the same version, the room swaps in that transaction: each side’s assets cross to the other, less 0.5% on coins and tokens, and NFTs cross whole. If any transfer fails, nothing moves.

The way out is always open. Either side can take a deposit back or cancel until the room settles. The admin can pause new rooms, set the fee up to 1% and verify assets, but nobody, the admin included, can send a deposit anywhere except back to its owner or across to the other side.

A named price, taken in one call. The maker puts their side in and names exactly what they want. The taker accepts with Fill, which pulls the assets in and settles in one transaction; any change to the room withdraws the price.

Trade Window — an item’s details: verified, and what arrives after the fee
An item’s details: verified, and what arrives after the fee
Trade Window — they changed their offer, so your ready mark was cleared
They changed their offer, so your ready mark was cleared
Trade Window — both sides swap in one transaction
Both sides swap in one transaction
Trade Window — trade complete, after the 0.5% fee
Trade complete, after the 0.5% fee

A game interface, built from the voxel world.

The window is laid out the way an MMO lays out its own: your bag and theirs side by side, eight slots each, and a trade bar across the bottom that says what the room waits for, your turn, they are ready or their price, beside the one action. Panels are slabs with stepped corners, slots are wells cut into them, and every action is a key that presses down.

Colour follows the role, not the viewer. The maker’s side is amber glass on both screens and the taker’s aqua, so “the amber side” means the same to both; the one action is green.

Trade Window — the home page on a phone
The home page on a phone
Trade Window — your turn: add something to give
Your turn: add something to give
Trade Window — the confirmation, with the fee on each item
The confirmation, with the fee on each item
Trade Window — your play wallet, with an unverified token marked
Your play wallet, with an unverified token marked

Practice rooms first.

Practice rooms run the same rules on play balances kept in the browser: the fee, verified and unverified assets, open-market rooms, and a trader who accepts your price or names one. The rooms and board realms pass their tests on a local chain and are not on the Onyx testnet yet; the contract page says so instead of showing an address.

Handjet for the game type: titles, keys, counts and the version figure. Instrument Sans for reading, JetBrains Mono for realm paths.

Not affiliated with Gno.land. Practice rooms sign nothing and touch no chain.

Trade Window — practice rooms: who takes the other seat, what the room takes, how long it stays open
Practice rooms: who takes the other seat, what the room takes, how long it stays open
Trade Window — how it works, one call at a time
How it works, one call at a time
Trade Window — the contract reference: every call and what it refuses
The contract reference: every call and what it refuses

Dmytro Dintsen
Senior product designer

Let’s make
something good.

Write on Telegram
Thank you for connecting with me! I will be in touch soon.