

What did Bushido build for ENS HQ?
A dedicated marketplace where ENS brokers sell .eth domains on behalf of their holders, with offers found nowhere else. Two Bushido developers built the storefront, admin page, marketplace smart contract and backend in three weeks. Offer requests stay off-chain so the platform pays no gas, holders stay owners until a sale, and an admin signature checked in the contract stops anyone changing the agreed price. Stack: Solidity on Ethereum, Next.js, Moralis Streams, MongoDB, Alchemy and Primer.
ENS HQ brokers .eth domains. Its admin approaches domain holders, agrees a price, and sells the domain on their behalf. On OpenSea or Rarible those domains disappear into a huge pool of NFTs, so ENS HQ wanted a marketplace of its own, for ENS domains only, with offers listed nowhere else.
The holder had to authorise every sale securely and transparently, stay the owner while an offer was open, and be able to cancel until the moment it sold. It had to be built in weeks, within budget, without compromising security or quality — and with no design beyond “something like nouns.wtf”.
Reservoir aggregates listings across secondary marketplaces, which works against exclusivity. Wyvern carries a lot of functionality nobody would use, and fees on every transaction. So, with the client, we wrote a minimal marketplace contract in the pattern OpenSea and Rarible use — add offer, buy now — and nothing else.
The admin searches for a minted ENS domain, sets the price, start, duration and fee, and the request is saved to the database. Nothing touches the chain until a holder accepts, so the platform pays no gas for offers that go nowhere.
Holders connect a wallet, see the offers waiting for them, and accept or delete each one. Accepting approves the contract for the token and puts the offer on-chain; the holder remains the owner until someone buys.
The backend signs each agreed offer, and the contract checks that signature when the holder submits it, so a seller cannot invent their own price or fee. The contract is open source, and the holder can read exactly what they are sending before they send it.
Offers on sale, confirmed future offers, sold and failed offers all live on-chain, as do creating, removing and buying. Moralis Streams catches the contract’s events and keeps the database in step.
In the spirit of nouns.wtf, on GitHub’s Primer design system: past sales to the left, live and upcoming offers to the right, and Etherscan links, the contract address and its source a click away when a holder approves.
Create and remove offer requests with description, sale start, period and fee, and see every pending, active, sold and failed sale in one list — no database access needed.
It starts at one domain a day, but the contract takes multiple offers over any period, works with any ERC-721 token rather than only ENS, and the backend can deploy a new marketplace contract when the idea earns it.
| Off the shelf | What we built | |
|---|---|---|
| Where a domain is listed | OpenSea or Rarible, among a huge pool of NFTs | An ENS-only marketplace, with offers found nowhere else |
| The contract | Wyvern: unused functionality and fees on every transaction | Two functions, add offer and buy now; the fee is set per sale |
| Reach of a listing | Reservoir aggregates it across every secondary marketplace | The offer exists on this marketplace only |
Three weeks from a 45-minute discovery call, without trading away security or quality for the speed.
The holder pays to approve the contract and to put an accepted offer on-chain, the buyer pays to buy, and the admin pays to remove an offer. Offer requests cost nothing, because they stay off-chain until a holder accepts.
The backend signs every agreed offer, and the contract checks that signature when the holder submits it. An offer with a price or fee the admin did not sign is rejected on-chain.
No. The contract follows the standard secondary-marketplace pattern, so it works with any ERC-721 token, and the backend is built to deploy a new marketplace contract later.
Same team, sharper tools. Tell us where you are and we will tell you what it takes — scope, shape and a timeline we would actually hold ourselves to — on a 30-minute call with an engineer.