Who, and how much
Paste an address and an amount in dollars — up to 5 people in one go. Tick the stocks you're happy to sell, and whether to spend any USDG you already hold first.
Rent, a friend, an invoice — say who and how much. Pluck sells a little of the stocks you hold, pays every person their exact amount in dollars, and hands you back the change. One transaction from your own wallet. If the pools can't cover it, nothing moves at all.
Pluck is a page, not a company. Everything below happens between your wallet and Uniswap's own contracts.
Paste an address and an amount in dollars — up to 5 people in one go. Tick the stocks you're happy to sell, and whether to spend any USDG you already hold first.
Every pool that trades your stocks is quoted at the same moment. Pluck works out how much of each to sell — the cheapest way, or the same share of each so your mix keeps its shape — and shows you the cost before you sign.
Uniswap's router sells the shares, sends each person their exact amount, and sweeps what's left back to you. If any sale falls short, the whole thing undoes itself — nobody is ever paid short.
One call to Uniswap's Universal Router. The page reads it back before your wallet is ever asked, and refuses to send anything that isn't exactly this shape.
Quoted at block 64,851,897 for the portfolio above, with example addresses. The sales' floors add up to $1,200.00 against $1,200 owed; the steps and every guard are the ones js/route.js builds.
A payment is a fixed transfer, not a share of whatever the sales brought. If the router holds a cent less than it owes, the transfer fails and the whole transaction is undone.
Each stock is sold with a minimum price, and the minimums add up to more than the payment. A sale that clears its floor always leaves enough to pay.
Pluck sells slightly more than the payment needs, so a price that moves a little doesn't fail it. Whatever is left over is swept back to your wallet in USDG, in the same transaction.
The permit you sign names each stock and the exact number of shares, expires in 30 minutes, and can be spent once. Nothing else in your wallet can move.
We started out sure the right answer was a little from each. The pools disagreed. So Pluck prices both ways, every time, and you pick.
to pay $1,200 from $2,500 each of eight stocks. The payment is cut into slices and each slice is sold wherever it costs least next — which, at this size, is mostly SPY and AAPL, the deepest pools at this size.
for the same payment, selling the same share of every stock so what's left keeps its shape. It costs 2.6× as much, because the thinner pools — MSFT, META and AMZN — have to take their share too.
Pool fees and price impact together, against each stock's price before the sale. Selling from one stock alone is shown for the stocks that could cover it.
| Payment | Cheapest | Keep my mix | Best single stock | Worst single stock |
|---|---|---|---|---|
| $100 | $0.05 0.05% | $0.11 0.11% | SPY $0.05 | META $0.30 |
| $1,200 | $0.63 0.05% | $1.67 0.14% | SPY $0.64 | MSFT $6.20 |
| $5,000 | $3.02 0.06% | $8.56 0.17% | no single stock covers it | — |
| $15,000 | $24.24 0.16% | $31.99 0.21% | no single stock covers it | — |
Both are small: $0.63 and $1.67 on a $1,200 payment. At these sizes the reason to use Pluck is not the saving — it is that the payment is exact, it is one step, and you see what you give up before you sign. Measured at block 64,851,897; the live panel at the top of the page prices it again now, and the numbers move.
Pool fee plus price impact for selling $1,000 of each, through its best pool, quoted at block 64,831,575. Pluck refuses any pool that charges more than 5% — a pool is not a market above that, however happily it quotes.
SGOV · iShares 0-3 Month Treasury Bond
fee and impact on $1,000
for a one-stock payment, measured on the real transaction; $0.20 for twelve stocks
| Stock | Price | Selling $1,000 costs | Pool |
|---|---|---|---|
| SGOV iShares 0-3 Month Treasury Bond | $100.99 | 0.04% | v4 · 0.0375% |
| AAPL Apple | $332.54 | 0.05% | v3 · 0.05% |
| GLD SPDR Gold Trust | $391.95 | 0.05% | v3 · 0.05% |
| GME GameStop | $21.94 | 0.05% | v3 · 0.05% |
| NVDA NVIDIA | $214.49 | 0.05% | v3 · 0.05% |
| SPCX Space Exploration Technologies Corp. Class A Common Stock | $150.91 | 0.05% | v3 · 0.05% |
| SPY SPDR S&P 500 ETF Trust | $754.89 | 0.05% | v3 · 0.05% |
| QQQ Invesco QQQ | $704.62 | 0.06% | v3 · 0.05% |
| LLY Eli Lilly | $1,137.49 | 0.07% | v3 · 0.05% |
| GOOGL Alphabet Class A | $343.48 | 0.08% | v3 · 0.05% |
| AMC AMC Entertainment | $2.65 | 0.12% | v4 · 0.1% |
| TSLA Tesla | $358.16 | 0.13% | v3 · 0.05% |
| BABA Alibaba | $106.88 | 0.15% | v4 · 0.1% |
| USO United States Oil Fund | $156.09 | 0.20% | v4 · 0.12% |
| IBM IBM | $237.24 | 0.22% | v4 · 0.15% |
| DJT Trump Media & Technology Group | $8.52 | 0.25% | v4 · 0.2057% |
| MU Micron Technology | $925.39 | 0.31% | v3 · 0.3% |
| TTWO Take-Two Interactive Software | $211.91 | 0.31% | v4 · 0.2% |
| AMZN Amazon | $245.30 | 0.32% | v3 · 0.3% |
| META Meta Platforms | $672.55 | 0.32% | v3 · 0.3% |
| MSTR Strategy Inc. | $126.89 | 0.32% | v4 · 0.25% |
| JNJ Johnson & Johnson | $266.65 | 0.33% | v3 · 0.3% |
| INTC Intel | $100.92 | 0.34% | v3 · 0.3% |
| MRNA Moderna | $145.13 | 0.34% | v3 · 0.3% |
| COST Costco | $894.42 | 0.35% | v3 · 0.3% |
| CRCL Circle Internet Group | $80.90 | 0.35% | v3 · 0.3% |
| PLTR Palantir Technologies | $173.69 | 0.35% | v3 · 0.3% |
| NFLX Netflix | $76.40 | 0.37% | v3 · 0.3% |
| HIMS Hims & Hers Health | $27.91 | 0.38% | v3 · 0.3% |
| QUBT Quantum Computing | $8.08 | 0.44% | v3 · 0.3% |
| RBLX Roblox | $47.62 | 0.44% | v4 · 0.1% |
| RDDT Reddit | $157.57 | 0.44% | v4 · 0.29% |
| LULU Lululemon | $95.95 | 0.45% | v3 · 0.3% |
| USAR USA Rare Earth | $15.12 | 0.45% | v3 · 0.3% |
| AVGO Broadcom | $338.09 | 0.49% | v3 · 0.3% |
| MSFT Microsoft | $490.58 | 0.49% | v4 · 0.09% |
| DELL Dell | $558.38 | 0.54% | v4 · 0.5% |
| RIVN Rivian Automotive | $15.19 | 0.54% | v3 · 0.3% |
| AMD AMD | $512.15 | 0.60% | v3 · 0.3% |
| SLV iShares Silver Trust | $57.01 | 0.62% | v3 · 0.3% |
| TSM Taiwan Semiconductor Manufacturing | $415.51 | 0.65% | v4 · 0.498% |
| NU Nu | $13.62 | 0.90% | v4 · 0.8% |
| NET Cloudflare, Inc. Class A common stock | $323.16 | 1.0% | v4 · 0.95% |
| ORCL Oracle | $141.65 | 1.1% | v4 · 1% |
| SNDK Sandisk Corporation | $1,507.60 | 1.1% | v4 · 1% |
| RKLB Rocket Lab Corporation | $62.55 | 1.2% | v4 · 0.9% |
| COIN Coinbase | $162.28 | 1.2% | v4 · 1% |
| NBIS Nebius Group | $212.81 | 1.4% | v4 · 0.99% |
| EWY iShares MSCI South Korea fund | $174.81 | 1.6% | v4 · 0.5% |
| ASML ASML Holding NV | $1,594.40 | 2.0% | v3 · 1% |
Pluck is a static page. It cannot hold your money, and it is not the only thing in the picture.
Each is a token on this chain issued by a company, not a share certificate in your name. They carry a pause switch, as tokenized equities generally do: if the issuer pauses transfers, nothing moves — in Pluck or anywhere else.
A payment is one call to Uniswap's Universal Router, which sells through Uniswap's pools and pays out. Permit2 is Uniswap's allowance contract. Both are used at the addresses in the docs, read back from the chain before they were written down.
It builds the transaction your wallet signs, and reads it back first: every payment must go to someone you typed, for exactly what you typed, and the change must come back to you. If it can't prove that, it won't ask your wallet.
The transaction has been run against the real router on this chain, sent for real on a fork, and fuzzed in random sequences with the code deliberately broken to prove the checks still bite. The numbers are below. None of it has been audited.
Each of these is a tool in the repository, and each has a control that must fail — a check that stopped checking looks exactly like a clean build.
The page's payment, signed by a real key and run from that key's own address on Robinhood Chain against the real stock tokens — with a control that funds the wrong storage slot and must pay nobody.
Payments built by this page, run through the real Universal Router and real pools at block 64,837,845: exact amounts, the change, every refusal classified by its error — each with a twin proving the same payment goes through when the guard is satisfied.
Real payments from a real wallet with a real Permit2 signature: every recipient paid to the unit, the change back, and every refusal leaving the wallet exactly as it was.
Payments, re-pricings, approvals and price shocks in random order, every invariant re-checked after every step — then replayed against ten deliberately broken copies, each caught by the invariant named for it.
The transaction builder sabotaged one line at a time — a recipient paid a wei too much, the change left behind, a floor ignored — each caught by the property named for it.
The real app in a real browser against a fork: recipients typed in, stocks ticked, the payment signed and sent, and the dollars read back from the chain.
Nothing here has been audited by anybody. It is a small page over somebody else's contracts, tested in the open.
USDG — Global Dollar, the dollar token issued by Paxos that Robinhood Chain's pools trade in — in their own wallet, for exactly the amount you typed. They need a wallet address on this chain and nothing else.
Prices move between the moment you sign and the moment the transaction lands. Pluck sells a little more than the payment needs — your slippage setting, 0.50% by default — so a small move doesn't fail it. Everything the sales bring beyond the payment comes straight back to you in USDG, in the same transaction.
Then a sale misses its floor and the whole transaction is undone: no shares sold, nobody paid, nothing lost but the network fee. Price it again and send it again.
Uniswap's router takes tokens through Permit2. Each stock needs one approval to Permit2, ever; after that, every payment is a single signature naming the exact shares, which expires in 30 minutes.
Yes. Tick "spend my USDG first" and Pluck uses your dollars before selling anything. If they cover the whole payment, it sells nothing at all.
Very possibly, wherever you live. Pluck sells shares; it doesn't know your tax position and doesn't give advice. Nothing here is financial advice.
Robinhood Chain, id 4663, an Arbitrum chain. Your wallet will offer to add it. Everything Pluck reads or sends is on that chain.
No selling first, no waiting for dollars to land, no guessing how many shares make $1,200.