---
title: "Exchange — Making a Trade"
description: "How to put a trade together on the Exchange: direct to one collector or open to anyone, picking your offer and your ask, the GUIDE value on each side, how long it stands, and answering a trade sent to you."
category: "for-collectors"
keywords: ["exchange", "trade", "make a trade", "direct", "open to anyone", "guide", "counter", "accept trade", "decline", "picker"]
last_updated: "2026-10-19"
---

# Exchange — Making a Trade

A trade is two sides: **YOUR OFFER** on top (what you give) and **YOUR ASK**
underneath (what you want back). You send it to one collector, or post it to
the board for anyone.

**How:** Open your Exchange (the ⇌ on your wallet row), tap an empty slot's **NEW TRADE**, fill both sides, then tap **POST TO THE BOARD** or **SEND TRADE**.

## Two ways to trade

**DIRECT** goes to one collector. Start from the ⇌ on their profile or on an
Output they hold, and the trade opens with them already picked. From an empty
slot, tap DIRECT and type their @name. Your ask then shows their Outputs,
sheets and keychains, and they get a ⇌ ping that opens the trade.

**OPEN TO ANYONE** goes on the board. You can't ask for one person's piece,
so an open trade asks for:

- **Any Output from a Project** — "any Reliquary." Whoever fills it picks which of theirs to give.
- **Sealed sheets** — any sheet, any count.
- **ETH.**

A new trade from an empty slot opens on OPEN TO ANYONE. Switching between the
two keeps what the new kind can ask for and clears the rest:

```show toast
{
  "toasts": [
    { "try": "SWITCH", "msg": "Your ask: CLEARED 1" },
    { "try": "DIRECT, NO NAME", "msg": "Who: TYPE AN @NAME FIRST" }
  ]
}
```

## Putting it together

```show steps
{
  "caption": "A new open trade, start to finish. Every piece here is the Exchange's own.",
  "steps": [
    {
      "say": "Tap an empty slot. The new trade opens on OPEN TO ANYONE, both sides empty.",
      "show": { "kind": "exchange", "face": "compose", "compose": { "mode": "open", "give": [], "get": [] } }
    },
    {
      "say": "Tap + under YOUR OFFER. The picker has three tabs; sheets take a count with − and +. Tap DONE · n PICKED to go back.",
      "show": { "kind": "pills", "rows": [{ "level": "l1", "pills": [
        { "label": "⬚ OUTPUTS", "on": true }, { "label": "⊞ SHEETS" }, { "label": "⚷ KEYCHAINS" }
      ] }] }
    },
    {
      "say": "Tap + under YOUR ASK. An open ask has two tabs: ⬚ PROJECTS (any Output from one) and ⊞ SHEETS.",
      "show": { "kind": "pills", "rows": [{ "level": "l1", "pills": [
        { "label": "⬚ PROJECTS", "on": true }, { "label": "⊞ SHEETS" }
      ] }] }
    },
    {
      "say": "Both sides filled. Each shows its GUIDE. Pick how long it stands, then tap POST TO THE BOARD.",
      "show": { "kind": "exchange", "face": "compose", "compose": {
        "mode": "open",
        "give": [{ "slug": "prisms", "id": 22, "sym": "PRSM22" }, { "kind": "sheet", "sheet": "petey", "qty": 3 }],
        "get": [{ "kind": "any", "slug": "cultivar", "sym": "CLTV" }],
        "giveGuide": "0.074", "getGuide": "0.06"
      } }
    },
    {
      "say": "A confirm card names both sides before anything goes out. Post, and it lands in one of your eight slots.",
      "show": { "kind": "confirm", "question": "Post this trade to the board? You give PRSM22, PETEY×3 · you get ANY CLTV.", "ok": "Post", "done": "Trade: ON THE BOARD" }
    }
  ]
}
```

- **YOUR OFFER** — tap **+** to pick. Tap a square to take it back out. **◊ ADD ETH** puts ETH on your side.
- **YOUR ASK** — direct: their pieces, from their own collection. Open: **⬚ PROJECTS** and **⊞ SHEETS**. **◊ ASK ETH** asks for ETH. Only one side can carry ETH: fill one box and the other locks.
- **How long it stands** — 1D, 7D, 30D or 6MO. It starts on 30D.
- **Send** — a direct trade lands in their pings; an open one goes on the board. Either way it takes one of your eight slots.

```show exchange
{
  "caption": "A direct trade, ready to send. Tap SEND TRADE, then the card.",
  "face": "compose",
  "compose": {
    "mode": "direct", "with": "@noctua",
    "give": [{ "kind": "keychain", "no": 41, "seed": "0x3c1f9a7be04d22c8516e0b9fd3a4c7718e25b06d4f9ac13e87d2b5f60a9c4e11" }],
    "get": [{ "slug": "reliquary", "id": 4, "sym": "RLQY4" }],
    "getEth": "0.02",
    "giveGuide": "0.011"
  }
}
```

## GUIDE

**GUIDE** is each side's worth at floor: the lowest live listing for each
Output's Project, each sheet and each keychain, plus any ETH. It helps you
judge a deal; it never sets one. If any piece on a side has no live floor,
that side shows no GUIDE rather than a guess.

## Answering a trade

**How:** A direct trade sent to you sits under **WAITING ON YOU** in your slots, and its ⇌ ping opens it too. Tap it.

The trade opens from your seat: **YOU GIVE** on top, **YOU RECEIVE**
underneath, each with its GUIDE.

```show exchange
{
  "caption": "A trade sent to you. Tap ACCEPT TRADE.",
  "face": "trade",
  "trade": {
    "line": "PROPOSED BY @noctua · ENDS IN 1D",
    "give": [{ "slug": "reliquary", "id": 4, "sym": "RLQY4" }],
    "get": [{ "kind": "keychain", "no": 41, "seed": "0x3c1f9a7be04d22c8516e0b9fd3a4c7718e25b06d4f9ac13e87d2b5f60a9c4e11" }, { "kind": "eth", "eth": "0.02" }],
    "done": "Trade with @noctua: COMPLETE"
  }
}
```

1. **ACCEPT TRADE** — one confirm card names exactly what you give and what you get. Tap **Trade** and it settles ([How a trade settles](/docs/exchange/the-board#how-a-trade-settles)).
2. **COUNTER** — the trade turns around into a new one, both sides filled in, for you to change. **SEND COUNTER** sends it back, and theirs is replaced.
3. **DECLINE** — asks first, then they get a ping.

```show confirm
{
  "button": "DECLINE",
  "question": "Decline this trade with @noctua?",
  "ok": "Decline",
  "done": "Trade: DECLINED"
}
```

```show toast
{
  "caption": "The toasts each answer gives.",
  "toasts": [
    { "try": "ACCEPT", "msg": "Trade with @noctua: COMPLETE" },
    { "try": "COUNTER", "msg": "Counter: SENT to @noctua" },
    { "try": "DECLINE", "msg": "Trade: DECLINED" }
  ]
}
```

## Canceling yours

**How:** Tap the slot, then **CANCEL TRADE**.

You can cancel any trade you sent until it's answered. Unanswered trades
expire when their time runs out, and the slot frees up.

```show confirm
{
  "button": "CANCEL TRADE",
  "question": "Cancel this trade?",
  "ok": "Cancel trade",
  "done": "Trade: CANCELED"
}
```

## Further reading

- [Exchange](/docs/exchange) — the window, what you can trade, the doors.
- [The Board](/docs/exchange/the-board) — filling open trades and how every trade settles.
