Skip to content

PoolSwap

Live

A cross-chain exchange we built for PoolSwap: one card compares live offers from six providers, and an optional privacy pool builds its proof in the browser.

PoolSwap: the “Exchange Crypto Privately” card inside a ring of glass 3D coins
FIG. 01 — PoolSwap · Crypto exchange
Client
PoolSwap
Industry
Crypto exchange
Status
Live
What we built
Web3 · Web app
Stack
Next.js · TypeScript · Tailwind CSS · wagmi · LI.FI SDK · snarkjs · Succinct · Blender
Services
Product & UI/UX · dApp front-end · API integrations with 6 providers · ZK privacy-pool integration · 3D visuals in Blender

FIG. 02 — Anatomy

Brief

One calm place for real cross-chain offers, with no account.

PoolSwap: the “Exchange Crypto Privately” card inside a ring of glass 3D coins
PoolSwap: the “Exchange Crypto Privately” card inside a ring of glass 3D coins
A — Interface
A swap card in a ring of 3D coins, and an offers panel
B — Logic
Parallel quotes from 6 providers, ranked by amount received
C — Contracts & chain
A shielded pool on Robinhood Chain, a Groth16 proof, Succinct

Approach

  1. 01Challenge

    Moving crypto across networks meant opening one exchange site after another and comparing rates, limits and wait times by hand, and every swap left a public trail. The brand wanted one calm place with real offers side by side, with no account, and an optional way to separate a deposit from a withdrawal.

  2. 02Approach

    One card in a ring of 3D coins. Behind it, the PoolSwap server asks six providers at once and ranks the offers by what you actually receive. For privacy, a fixed-amount pool whose withdrawal proof is made in the browser and finished on Succinct’s prover network. Around it, an original 3D language rendered in Blender.

  3. 03Result

    PoolSwap is live at poolswap.io. One request returns every available offer in one panel, the picker spans more than 60 networks and the privacy pool runs on Robinhood Chain mainnet. The product took 154 commits, from March 2025 to September 2026.

Highlights

  • 016 providers in one request
  • 02Zero-knowledge proofs made in the browser
  • 03Exchange with no account and no wallet
Skip the chapters ↓

How it’s built

CH. 01—06

Chapters

PoolSwap is a product for exchanging crypto across networks that we built for the brand. One card inside a ring of 3D coins asks six providers at once and ranks their offers by what you actually receive, with no account and no wallet connection. The optional privacy pool (Anonymize) builds its zero-knowledge proof in the browser. On the site the product signs as POOL.

  1. 01One request, every offer
  2. 02The keys stay on the server
  3. 03A proof made in your browser
  4. 04Every section, its own sculpture
  5. 05The same card, one-handed
  6. 06From prototype to mainnet

CH. 01 / 06 — Exchange

One request, every offer

Pick a network and a token on each side and type an amount. PoolSwap asks six providers at once and ranks the offers by what you actually receive. No account, no wallet connection.

Network first, then the exact token, searchable by name, symbol or address. The catalogue of networks and tokens comes from LI.FI.

  • 60+ networks
  • LI.FI

PL. 01 — Network, then token

  1. 01

    Network, then token

    Network first, then the exact token, searchable by name, symbol or address. The catalogue of networks and tokens comes from LI.FI.

    • 60+ networks
    • LI.FI
    The “You get” token picker on Solana, searching “USDC”
  2. 02

    A live quote

    As you type the amount, the card shows the rate and an estimated value in dollars.

    • Rate + USD estimate
    The swap card with 1 ETH typed and a live quote to SOL
  3. 03

    Every offer in one panel

    After “Send a request” the offers line up. The best one sits on top under a “BEST RETURN” bar, and each keeps its own fee, time estimate and limits.

    • Ranked by amount received
    • BEST RETURN
  4. 04

    Deposit and tracking

    Choose an offer, paste the receiving address and follow the deposit instructions. The order is tracked to your wallet, and times are estimates, not promises.

    • Floating or fixed rate
    • 4 steps
    The How it works guide for Exchange: four numbered steps
  1. 01

    Network, then token

    Network first, then the exact token, searchable by name, symbol or address. The catalogue of networks and tokens comes from LI.FI.

    • 60+ networks
    • LI.FI
    The “You get” token picker on Solana, searching “USDC”
  2. 02

    A live quote

    As you type the amount, the card shows the rate and an estimated value in dollars.

    • Rate + USD estimate
    The swap card with 1 ETH typed and a live quote to SOL
  3. 03

    Every offer in one panel

    After “Send a request” the offers line up. The best one sits on top under a “BEST RETURN” bar, and each keeps its own fee, time estimate and limits.

    • Ranked by amount received
    • BEST RETURN
  4. 04

    Deposit and tracking

    Choose an offer, paste the receiving address and follow the deposit instructions. The order is tracked to your wallet, and times are estimates, not promises.

    • Floating or fixed rate
    • 4 steps
    The How it works guide for Exchange: four numbered steps

CH. 02 / 06 — Architecture

The keys stay on the server

The browser talks only to the PoolSwap server. It asks six providers in parallel, so one slow answer never holds up the rest. An order is created only with the provider you chose, and only after you confirm.

Demo · schematic
  • 6 providers
  • 1 request
  • the keys stay on the server

PoolSwap API

Next.js · server routes

LI.FIreads only
LetsExchangereads only
Changellyreads only
SimpleSwapreads only
ChangeNOWreads only
Swapuzreads only
ChangeHeroreads only
The chosen providerwrites after a “yes”
Succinctsends after confirmation

01 / 03 — reads only

Illustrative schematic. Orders, names, amounts and messages are examples.

PoolSwap API

Next.js · server routes

LI.FIreads only
LetsExchangereads only
Changellyreads only
SimpleSwapreads only
ChangeNOWreads only
Swapuzreads only
ChangeHeroreads only
The chosen providerwrites after a “yes”
Succinctsends after confirmation

Asks in parallel

Networks and tokens from LI.FI, and quotes from six providers at once, ranked by amount received.

  • LI.FIreads only
  • LetsExchangereads only
  • Changellyreads only
  • SimpleSwapreads only
  • ChangeNOWreads only
  • Swapuzreads only
  • ChangeHeroreads only

An order after a “yes”

The order is created only with the provider you chose, and only after “Exchange now”.

  • The chosen providerwrites after a “yes”

Sends only the proof

When you withdraw from the pool, only the proof and its public signals go to Succinct’s network, never the secret note.

  • Succinctsends after confirmation
  • 6 providers
  • 1 request
  • the keys stay on the server
Illustrative schematic. Orders, names, amounts and messages are examples.

PoolSwap API

Next.js · server routes

Asks in parallel

Networks and tokens from LI.FI, and quotes from six providers at once, ranked by amount received.

  • LI.FIreads only
  • LetsExchangereads only
  • Changellyreads only
  • SimpleSwapreads only
  • ChangeNOWreads only
  • Swapuzreads only
  • ChangeHeroreads only

An order after a “yes”

The order is created only with the provider you chose, and only after “Exchange now”.

  • The chosen providerwrites after a “yes”

Sends only the proof

When you withdraw from the pool, only the proof and its public signals go to Succinct’s network, never the secret note.

  • Succinctsends after confirmation
  • 6 providers
  • 1 request
  • the keys stay on the server
Illustrative schematic. Orders, names, amounts and messages are examples.

CH. 03 / 06 — Anonymize · zero knowledge

A proof made in your browser

You deposit a fixed amount into a shielded pool and keep a secret note. To withdraw, your browser computes a zero-knowledge proof, checks it and sends only the proof. The note never leaves the page.

Fixed amounts

The pool runs on Robinhood Chain mainnet and accepts fixed amounts only. The deposit comes with a secret note.

What happens

  • 0.5 · 1 · 5 · 20 ETH
  • Robinhood Chain mainnet
poolswap.io
The Anonymize tab: Robinhood Chain · Mainnet, fixed amounts of 0.5 / 1 / 5 / 20 ETH and a “Powered by Succinct” badge
  1. 01 / 04 — Amount

    Fixed amounts

    The pool runs on Robinhood Chain mainnet and accepts fixed amounts only. The deposit comes with a secret note.

    What happens

    • 0.5 · 1 · 5 · 20 ETH
    • Robinhood Chain mainnet
    poolswap.io
    The Anonymize tab: Robinhood Chain · Mainnet, fixed amounts of 0.5 / 1 / 5 / 20 ETH and a “Powered by Succinct” badge
  2. 02 / 04 — Note

    The note is the key

    The secret note authorises the withdrawal. You keep it: back it up before depositing and never share it.

    What happens

    • Backed up before depositing
    • Never shared
    poolswap.io
    The Anonymize guide: four steps and the note that a pool does not guarantee complete anonymity
  3. 03 / 04 — Proof

    A proof in the browser

    A Web Worker builds the Merkle path and a Groth16 proof on your device and checks them locally before anything leaves the browser.

    What happens

    • snarkjs · Web Worker
    • Local check

    Withdrawal proof

    Schematic · no real data

    Demo · schematic
    Merkle tree
    Poseidon · depth 20
    Proof
    Groth16 · Web Worker
    Local check
    11 public signals
    Sent
    the proof and signals only
    Finished on
    Succinct’s prover network
    Ready to withdraw
  4. 04 / 04 — Withdraw

    Withdraw with the note

    With the note you withdraw to another address, with the fee shown upfront. A pool does not guarantee complete anonymity, as the product’s own guide says.

    What happens

    • Recipient address
    • Fee shown upfront
    poolswap.io
    The withdraw view: empty note and address fields, with the fee shown upfront
  1. 01 / 04 — Amount

    Fixed amounts

    The pool runs on Robinhood Chain mainnet and accepts fixed amounts only. The deposit comes with a secret note.

    What happens

    • 0.5 · 1 · 5 · 20 ETH
    • Robinhood Chain mainnet
    poolswap.io
    The Anonymize tab: Robinhood Chain · Mainnet, fixed amounts of 0.5 / 1 / 5 / 20 ETH and a “Powered by Succinct” badge
  2. 02 / 04 — Note

    The note is the key

    The secret note authorises the withdrawal. You keep it: back it up before depositing and never share it.

    What happens

    • Backed up before depositing
    • Never shared
    poolswap.io
    The Anonymize guide: four steps and the note that a pool does not guarantee complete anonymity
  3. 03 / 04 — Proof

    A proof in the browser

    A Web Worker builds the Merkle path and a Groth16 proof on your device and checks them locally before anything leaves the browser.

    What happens

    • snarkjs · Web Worker
    • Local check

    Withdrawal proof

    Schematic · no real data

    Demo · schematic
    Merkle tree
    Poseidon · depth 20
    Proof
    Groth16 · Web Worker
    Local check
    11 public signals
    Sent
    the proof and signals only
    Finished on
    Succinct’s prover network
    Ready to withdraw
  4. 04 / 04 — Withdraw

    Withdraw with the note

    With the note you withdraw to another address, with the fee shown upfront. A pool does not guarantee complete anonymity, as the product’s own guide says.

    What happens

    • Recipient address
    • Fee shown upfront
    poolswap.io
    The withdraw view: empty note and address fields, with the fee shown upfront

CH. 04 / 06 — Visuals & 3D

Every section, its own sculpture

Each part of the site has its own 3D scene. Seven of them are built in Blender from parametric Python code, so any of them can be changed and rendered again.

A slow, endless loop of glass coins behind the swap card. The film is screen-blended and fades out at the bottom, so the card stays perfectly legible.

  • 6 s loop
  • Home hero

PL. 01 — The coin ring

  1. 01

    The coin ring

    A slow, endless loop of glass coins behind the swap card. The film is screen-blended and fades out at the bottom, so the card stays perfectly legible.

    • 6 s loop
    • Home hero
  2. 02

    The open wave

    Three metal ribbons for the “A closer look” section. The scene enters on scroll with CSS alone and stays still if you prefer reduced motion.

    • Blender · Cycles
    • Parametric Python
    The open wave: three metal ribbons rendered in Blender
  3. 03

    The optical path

    Stacked glass plates open the How it works guide, under the line “Every step. Made clear.”

    • How it works guide
    The optical path: glass plates stacked one above another
  4. 04

    Three circuits for the roadmap

    One link, then a hub, then a network: three renders that grow with the roadmap’s phases. They illustrate a vision, not shipped features.

    • 3 phases · vision
    1. Roadmap, phase 1: a single link between two modules
      01 / 03
    2. Roadmap, phase 2: a hub with six links
      02 / 03
    3. Roadmap, phase 3: a branching network
      03 / 03
  5. 05

    The glass constellation

    An eight-second film for the Staking page, which is still “coming soon”. A control beside it pauses the motion.

    • 8 s · 24 fps
  1. 01

    The coin ring

    A slow, endless loop of glass coins behind the swap card. The film is screen-blended and fades out at the bottom, so the card stays perfectly legible.

    • 6 s loop
    • Home hero
  2. 02

    The open wave

    Three metal ribbons for the “A closer look” section. The scene enters on scroll with CSS alone and stays still if you prefer reduced motion.

    • Blender · Cycles
    • Parametric Python
    The open wave: three metal ribbons rendered in Blender
  3. 03

    The optical path

    Stacked glass plates open the How it works guide, under the line “Every step. Made clear.”

    • How it works guide
    The optical path: glass plates stacked one above another
  4. 04

    Three circuits for the roadmap

    One link, then a hub, then a network: three renders that grow with the roadmap’s phases. They illustrate a vision, not shipped features.

    • 3 phases · vision
    1. Roadmap, phase 1: a single link between two modules
      01 / 03
    2. Roadmap, phase 2: a hub with six links
      02 / 03
    3. Roadmap, phase 3: a branching network
      03 / 03
  5. 05

    The glass constellation

    An eight-second film for the Staking page, which is still “coming soon”. A control beside it pauses the motion.

    • 8 s · 24 fps

CH. 05 / 06 — Mobile

The same card, one-handed

At 390 px the card fills the screen, networks come from a full-screen list with search, and the guides stack into a single column.

The card

The swap card on a phone, scrolled to the feature bar.

  • 390 px
  • Exchange · Anonymize

PL. 01 — The card

  1. The swap card on a phone, scrolled to the feature bar

    01 / 05 — The card

    The swap card on a phone, scrolled to the feature bar.

    • 390 px
    • Exchange · Anonymize
  2. The full-screen network picker on a phone

    02 / 05 — Networks

    Networks come from a full-screen list, searchable by name or chain ID.

    • 60+ networks
    • Search
  3. A quote for 1 ETH on a phone

    03 / 05 — Quote

    The live quote, in a single column.

    • Rate + USD
  4. The Anonymize tab on Robinhood Chain on a phone

    04 / 05 — Anonymize

    The privacy pool with its fixed amounts.

    • Robinhood Chain
  5. The How it works steps in one column on a phone

    05 / 05 — Guide

    The How it works steps, one under another.

    • 4 steps
  1. The swap card on a phone, scrolled to the feature bar

    01 / 05 — The card

    The swap card on a phone, scrolled to the feature bar.

    • 390 px
    • Exchange · Anonymize
  2. The full-screen network picker on a phone

    02 / 05 — Networks

    Networks come from a full-screen list, searchable by name or chain ID.

    • 60+ networks
    • Search
  3. A quote for 1 ETH on a phone

    03 / 05 — Quote

    The live quote, in a single column.

    • Rate + USD
  4. The Anonymize tab on Robinhood Chain on a phone

    04 / 05 — Anonymize

    The privacy pool with its fixed amounts.

    • Robinhood Chain
  5. The How it works steps in one column on a phone

    05 / 05 — Guide

    The How it works steps, one under another.

    • 4 steps

CH. 06 / 06 — Result

From prototype to mainnet

From the first prototype in March 2025 to the privacy pool on Robinhood Chain mainnet in September 2026.

  1. First prototype
  2. First Anonymize
  3. Provider flow
  4. Robinhood Chain · redesign
  • 6

    providers per request

  • 60+

    networks in the catalogue

  • 20

    levels in the Merkle tree

  • 7

    3D scenes in Blender

  • 154

    commits

poolswap.io
The four-feature bar: offers in one place, across networks, no POOL sign-up and following your exchange
  • The network count comes from the LI.FI catalogue and changes; on 30 Sep 2026 the picker listed more than 60 mainnets.
  • A pool does not guarantee complete anonymity. The figures are technical facts from the code and the site, not business metrics.

Plates

PL. 01—04

poolswap.io
PoolSwap: the “Exchange Crypto Privately” card inside a ring of glass 3D coins — Scroll preview
PL. 01 — PoolSwap · Scroll previewOpen the full-page image (opens in a new tab)
The “Top 10 currencies” table with CoinGecko data and a Swap button on every row; prices as captured on 30 Sep 2026
PL. 02 — PoolSwap · desktop
The mobile menu on a phone
PL. 03 — PoolSwap · mobile
The FAQ with its first answer open, and the site footer
PL. 04 — PoolSwap · desktop

Palette & type

  • #090516Night
  • #080B18Ink navy
  • #456EFFElectric blue
  • #ABC4FFLavender
  • #39F7C3Mint
  • Archivo
  • Sora

Contact

Want something like this?

Your project could be Fig. 07.

30 minutes, no commitment. You’ll leave with concrete ideas for your website, processes or product.

FIG. 07 — Your project30 minutes · no commitment · we reply within a few hours on business days