Docs

How Upstairs works

What the desk does, what you approve, what the program checks, and what it doesn’t protect you from.

What Upstairs is

Upstairs is a place to agree a price on a whole bag with one other wallet. You post an ask on coins you hold, or a bid in SOL on a coin you want; when someone takes it, the coins and the SOL swap in one transaction. No pool is involved, so no pool price moves and no candle is drawn.

Why not the pool

A pool prices each trade on a curve. A sale that is large against the pool fills worse and worse as it goes, and leaves the price lower for everyone watching the chart. The calculator on the home page asks Jupiter for its best route at your size, right now, and shows what you’d get and what you’d lose to slippage. On Upstairs the price is the one you set, whatever the size.

A deal here has to beat the pool for both people: a buyer pays less than climbing the pool would cost, a seller gets more than dumping into it would pay. The New offer screen shows that comparison while you set your price.

Asks, bids, private offers

An ask offers coins you hold for SOL, at a total price for the whole size. A bid offers SOL for a coin, up to a size. Anyone can take either, unless you name one wallet: then it is a private offer only that wallet can take, kept off the public list and shared by link. Look a wallet up in Your desk to see what it holds and bid on its bag.

Offers last an hour, a day, three days or seven days (thirty at most) and can be cancelled before then. With partial fills on, a taker can take a piece and the rest stays up. Every offer has its own page that shows as a card when shared on X.

Where funds sit

In your wallet. Posting is one transaction you sign: it approves your coin account (for an ask) or your wrapped-SOL account (for a bid) to the desk, and opens the offer. The desk is an address derived from your wallet that only the Upstairs program can sign for. Nothing is deposited anywhere.

Approvals on Solana are per account and set, not added, so the app always sets the allowance to the total your open offers on that account still need. Cancelling lowers it again, or revokes it when nothing is left. Your desk lists any spare allowance and lets you revoke it in one click, and any Solana wallet or token tool can revoke it too, without this site.

For a bid, the app wraps the SOL your bids need into your own wrapped-SOL account. When you sell into a bid, you receive wrapped SOL and the same transaction unwraps it, so you get plain SOL.

What the program enforces

Every fill is checked on chain, in the same instruction that moves the funds:

  • The maker is paid their price in the same instruction. An ask is never paid less than its price (fills round up), a bid never pays more than its price (fills round down).
  • The size fits what’s left, and a whole-bag-only offer can only be taken whole.
  • The offer hasn’t expired, and a private offer is taken by its wallet only.
  • For a bid, the coins land in the maker’s own account, not anywhere else.
  • The desk only signs inside a fill of one of your own open offers. With no open offer, a leftover allowance is inert.

The program has no admin instruction, no fee switch and no pause, and no server key can move anything. If any check fails, the whole transaction fails and nothing moves. Until the program is audited, the team keeps its upgrade authority so a bug can be fixed; it will be given up after the audit, and every upgrade is public on chain.

What it costs

No desk fee. You pay Solana’s network fee on the transactions you send, and posting an offer holds about 0.0022 SOL of rent in the offer account. The rent comes back to you when the offer is filled, cancelled or closed after it expires (anyone can close an expired offer, and the rent still goes to you).

The program

Program address: UPStMtXiyKir1nbwhdXQuuYnC9twJC2bkcZ3C8R7xok. It goes live on Solana mainnet at launch.

It has four instructions: open, fill, cancel and close an expired offer. Offers are accounts at the address derived from the maker and an offer id; the book on this site is read straight from them, and fills from the program’s own event records, so there is no database to trust either.

Risks

  • Not audited yet. The program is small and tested on every path, but trade sizes you’re comfortable with.
  • The candle can be delayed. A trade here leaves the chart alone, but the buyer holds a bag that may go through the same thin pool one day.
  • The other side may know more. Anyone happy to sell a whole bag below spot, or to pay above it, may have a reason. Check who they are.
  • Prices move. A fair offer can look poor an hour later. Pick a short expiry and cancel if the market turns.
  • Check the mint. Anyone can make a coin with any name. Confirm the mint address before you trade it.
  • Nothing is hidden. A fill is a public Solana transaction. It just doesn’t touch a pool or draw a candle.