Contents▾
1 · Getting started
There is no sign-up, no account and no deposit. You connect a wallet and you trade. Everything below takes about three minutes.
What The Desk is
A trading terminal for Robinhood Chain, built around one uncomfortable fact: around 92 % of the tokens ever launched on this chain are dead. So every screen puts the deployer's record, the contract's powers and the holder concentration in front of you before the buy button, and the trading tools — limit orders, ladders, martingale, bots — exist so you do not have to sit and watch a chart to act on any of it.
It is non-custodial in the literal sense. Market orders and limit orders never move your money anywhere except through the swap itself. The strategies that do hold funds hold them in a contract that only your wallet can empty — see §14.
Step 1 · A wallet
Use an injected wallet
MetaMask, Rabby, or the built-in browser of any wallet app. There is no WalletConnect and no e-mail login. If none is found you get: No wallet detected. Open nlyra.xyz inside your wallet app, or install MetaMask / Rabby.
On a phone, open nlyra.xyz inside your wallet app's own browser. Safari and Chrome on iOS cannot reach a wallet app's signing keys, so the connect button will find nothing there. Every wallet app has a browser tab — use that one.Press CONNECT, top right
Approve the connection. Nothing is sent anywhere; the page just learns your address. Once connected the chip shows your ETH balance and your @name (or a shortened address).
Step 2 · Robinhood Chain
Everything happens on Robinhood Chain, chain id 4663. If your wallet is on another network, The Desk offers to switch — and if the network is not in your wallet at all, it offers to add it with these exact settings:
If the switch does not take, you get Switch your wallet to Robinhood Chain and the wallet chip turns amber. Every transaction re-checks the network before it is built, and anything carrying the wrong chain id is refused before your wallet ever opens.
Step 3 · ETH on Robinhood Chain
Three ways in:
Bridge
From Arbitrum or Ethereum via portal.arbitrum.io/bridge or robinhood.com/chain.
From the Robinhood app
Buy ETH there and withdraw it to Robinhood Chain.
Ask
The group will walk you through it.
While your balance is under 0.001 ETH with no USDG, a card appears on the board and in the trade panel telling you so and offering those three routes. It is a card, never a gate — every control stays live behind it — and you can dismiss it for 24 hours.
MAX button in the trade panel always leaves
0.0002 ETH behind for gas — about seventy transactions' worth — and tells you so.Step 4 · Your first trade
Find a token
Browse the MARKET board, watch new launches on FIREHOSE, or paste a contract address into the search box and press Enter.
Read the verdict before the chart
The chip in the header and the one line under it tell you what the contract can do to you. §3 explains every check.
Type an amount and press BUY
The first press connects your wallet; the second buys. Full walkthrough in §4.
After your first fill you will see, once: You're on. Pick a token and tap BUY — nothing else to set up.
Step 5 · Claim a @name
Optional, and not required to trade — but it is your identity on the tape, the leaderboards and copy trading, and your referral link does not exist without one.
Open the claim sheet
From your account, or from the prompt that appears once after a fill.
Type a name
3 to 20 characters, letters, numbers and underscore only, and it may not start or end with an underscore. Availability is checked against the chain as you type: checking… → available or taken.
Claim it
One transaction. The name itself is free — you pay only chain gas, about a cent. It is registered on-chain, one per wallet, first come first served. You are @yourname on Robinhood Chain.
Architect and architect are the same
identity. There is a rename function on the contract with a 7-day cooldown, but The Desk does not expose it
— treat the name you pick as permanent.Step 6 · Referrals
Your link is nlyra.xyz/desk/?r=yourname, and any token page you share is automatically tagged
with it once you have a name.
CLAIM sends up to
three transactions to sweep what is owed in each asset. Claimed 0.0214 — it is in your wallet.Getting around
| Where | URL | What it is |
|---|---|---|
| MARKET | /desk/ | The main board. §2 |
| FIREHOSE | /desk/fresh | New launches, newest first. |
| PREDICT | /desk/predict | BTC 5-minute up/down. §9 |
| BOTS | /desk/bots | The six strategies. §8 |
| RAP SHEET | /desk/creators | Deployers ranked by what they have done. |
| ACCOUNT | /desk/me | Positions, PnL, orders, watchlist, alerts, referrals. |
| LEADERS | /desk/leaders | Five rankings. §11 |
| A token | /desk/t/<address> | Everything about one token. §3 |
Press / anywhere to jump into search. Paste a contract address, press Enter, and you land on
that token from any screen.
One signature, no gas
Some things are private reads — your open orders, your ladders, your martingale cycles, your bot list, your alert feed. Anyone could otherwise enumerate a wallet's open orders just by knowing its address, so those reads are signed.
2 · The market board
Six boards live behind one screen. Three list tokens, three list people. Everything you set — filter, sort, direction — is remembered per board.
The six boards
| Board | Where | What it lists |
|---|---|---|
| MARKET | /desk/ · bottom nav | Every token the scanner has seen, with a pool. The default screen. |
| FIREHOSE | /desk/fresh · bottom nav | New launches, newest first. This is the raw feed — most of what appears here dies. |
| ★ WATCHLIST | /desk/watch · the ★ pill | Only the tokens you starred. Not in the bottom nav. |
| RAP SHEET | /desk/creators · bottom nav | Deployers, ranked by what happened to the tokens they launched. |
| TRADERS | /desk/traders · pill | Realised-PnL board. The pill only appears once there are at least 10 ranked wallets — a leaderboard with four names on it is not a leaderboard. |
| REFERRERS | /desk/referrers · pill | Who has brought traders, and what they have earned. |
Switching between them never rebuilds the page — rows stay alive, so a board switch is instant and your scroll position comes back when you press Back.
Reading a row
The board has two completely different layouts. The switch is at 960 px: below it you get a two-line list row, above it a 15-column table.
HELD if you own it · age. The
verdict word is SAFE, CAUTION, DANGER, BLUE CHIP,
NO SCAN, or blank when it is simply unknown. Long symbols shrink rather than
truncate.V $… is 24-hour USD volume, L $… is pool
liquidity in USD, and the last field is the deployer's record (below).The desktop columns
| Column | What the number is |
|---|---|
| TOKEN | Icon, symbol, and the name when it differs from the symbol. A HELD chip appears if the token is in your wallet. |
| VERDICT | The scan result — SAFE / CAUTION / DANGER / BLUE CHIP / UNSCANNED / UNKNOWN. Explained in full in §3. |
| PRICE | Last USD price. Sub-cent prices use subscript-zero notation: $0.0₅1234 means $0.000001234 — the subscript counts every zero after the point. |
| 5M · 1H · 6H · 24H | Percentage change over that window. — means the window has no data, which is not the same as 0 %. |
| MC | Market cap. Falls back to fully-diluted value when circulating supply is unknown. |
| LIQ | USD liquidity in the pool. This is the number that decides whether you can actually get out. |
| VOL | 24-hour USD volume. |
| BUY PRESSURE | A bar plus a percentage — the share of recent trade flow that was buys. See below. |
| AGE | Time since the token was created: now, 42m, 3.5h, 7d. |
| CREATOR RECORD | The deployer's kill rate. See below. |
| ★ · ⚡ | Watchlist star and quick buy. |
Narrow desktop windows drop columns in this order: 5M / 6H / PRICE below 1200 px, BUY PRESSURE below 1060 px, the token name below 1340 px.
Buy pressure, exactly
Buy pressure is a whole number from 0 to 100: the percentage of recent flow in that token that was buying. It is drawn as a fill bar whose width is the number, with the figure next to it.
The creator record
Every row carries the launch history of the wallet that deployed the token. Three states:
—— no record on file.- first launch — this deployer has launched once. Not a good sign or a bad one; simply no history.
9/24with a bar (mobile prints it as24×/38%) — 9 of this deployer's 24 launches are dead. The bar's width is the dead percentage.
The number and bar turn hot (gold, with a skull on mobile) when the deployer meets the
bad-record rule: at least 3 launches, at least 60 % of them dead, and not an
official/verified deployer. That same rule is what the FLAGGED filter uses.
Filters
The pill rail under the header filters the board. One pill is active at a time; the highlight slides to the one you press.
| Board | Pills, in order | Exact rule |
|---|---|---|
| MARKET · WATCH | ALL SAFE FLAGGED ALIVE BLUE CHIP MY BAG | SAFE = verdict is safe · FLAGGED = verdict is danger or a bad deployer record · ALIVE = not dead and liquidity ≥ $1,000 · BLUE CHIP = verdict is bluechip · MY BAG = you hold it |
| FIREHOSE | LIQ > $1K (default) ALL ALIVE FLAGGED DEAD | The firehose defaults to the $1K liquidity filter, not to ALL — the unfiltered feed is mostly noise |
| RAP SHEET | ALL 100% DEAD SERIAL HAS LIVE | SERIAL = 5 or more launches per day · HAS LIVE = at least one launch still alive |
| TRADERS | ALL IN PROFIT | Realised PnL above zero |
| REFERRERS | ALL TRADING EARNING | TRADING = at least one referred wallet has traded · EARNING = fees above zero |
Sorting
On a phone: press the ⇅ SORT button at the left of the caption rail. A sheet
opens with every sort. On desktop: click any column header. Either way,
tapping the sort you are already on flips the direction — the sheet says so at the
bottom.
The caption rail on mobile also makes the two right-hand captions tappable (MC and
24H normally, VALUE and PNL in MY BAG), so the two sorts people use
most are one tap away.
| Sort | Ranks by | Where |
|---|---|---|
| VOL | 24-hour USD volume — the default on MARKET and WATCH | rail + header |
| MCAP | Market cap (FDV as fallback) | rail + header |
| 24H | 24-hour percentage change | rail + header |
| AGE | Age, ascending — newest first. The default on FIREHOSE. Tokens with no known age sort last. | rail + header |
| LIQ | Pool liquidity | rail + header |
| PRICE · 5M · 1H · 6H | Price, and each of the shorter change windows | desktop headers only |
| BUY | Buy pressure. Rows with no data sort last. | desktop header only |
| RECORD | The deployer's launch count | desktop header only |
| VERDICT | Ranked SAFE → BLUE CHIP → CAUTION → UNSCANNED → UNKNOWN → DANGER | desktop header only |
| VALUE · PNL $ · PNL % · AVG COST | Your position. Only exist inside MY BAG. | see §10 |
Every sort breaks ties on 24-hour volume, descending. Featured tokens are pinned above the sort on the MARKET board whenever the search box is empty.
The watchlist
Star a token
Tap the ★ at the right of any row, on any board, in the table or in the compact column. It never opens the token. On a phone you can also press and hold the row for about half a second — you get a short haptic and a toast reading added to your watchlist. Moving your finger more than 10 px cancels it, so scrolling is unaffected.
Open the ★ WATCHLIST pill
It sits at the head of the filter rail with a count badge. Press it again to go back to the market.
Starred tokens never go missing
If a token falls off both the market and firehose boards, the watchlist fetches it on its own so you still get a real row instead of a bare address.
⚡ Quick buy
The bolt at the right edge of a row buys immediately at market, without opening the token page. The chip
labels itself with the size of the trade — BUY $25 — so you always know what you are about to
spend before you press it.
The strip above the board
Up to five cards can appear above the rows. All of them are dismissible or self-retiring; none of them block anything underneath.
Fund your wallet
Appears when your wallet is connected and holds under 0.001 ETH on this chain, with no USDG either. Dismissing it hides it for 24 hours. Steps in §1.
First-visit hero
Connect → pick a token → trade. Retires itself six seconds after you have seen it, and closes the moment a wallet connects by any route.
Invited-by note
Shown when you arrived on someone's referral link: @alice invited you. You pay 0.9 % instead of 1 % — permanently.
SUGGESTED strip
Featured tokens, each with its pool and DEX, price, 24 h change, liquidity and volume, plus a TRADE button. Featured rows are also pinned to the top of the market board.
Referral banner
Only shown to someone who has already made a trade — nobody shares a terminal they have not used. Dismissing it hides it for 3 days.
MY BAG totals
Only on the market board with MY BAG on. Full breakdown in §10.
The stats line
The row of figures across the top of the board describes the whole chain, not the visible rows. It counts up rather than snapping, and any figure the scanner does not have hides itself instead of printing a zero.
To the right sits the live block pill — a dot and the current block height. It anchors on
a real block every 30 seconds and counts between anchors at the chain's own block time (about 101 ms), with
the dot pulsing every sixth block. If it cannot anchor, it does not render at all rather than count made-up
blocks. Next to it, the refresh button shows how stale the board is (now,
43s, 12m) and reloads it when pressed.
The ticker
The scrolling strip is the chain's latest fills — not only Desk fills. Each chip reads
who · side · size · token · age: @alice bought $420 PEPE 12s. Buys and sells
are coloured differently, chips link to the token, and the newest three glow briefly.
- Put a finger on it and it stops. Someone touching a chip is someone reading it.
- It holds 40 chips and moves at a constant speed regardless of how many there are.
- A chip is patched in place when the server later works out whose fill it was — it never jumps.
- On a fresh visit the last snapshot is restored only if it is under 5 minutes old. A fill from an hour ago is not "just traded", so the strip stays empty instead.
- It appears on MARKET, FIREHOSE and WATCH only.
- With reduced motion switched on it does not scroll — it becomes an ordinary swipeable strip.
How the board stays live
Search
Type in the box at the top
Placeholder: search symbol or address. Press
/anywhere on the page to jump into it. The board filters live on every keystroke — it matches symbol, name or address on token boards, and @name or address on the people boards.Paste a full contract address and press Enter
You go straight to that token's page, from any screen, whether or not the token is on any board.
Press Enter on anything else
You are taken to the top hit. On the rap sheet, Enter does nothing — there is no single "top" deployer to open.
If the address is on no board
The list is replaced by a single row: Open
0x1234…abcd›. Tap it to open the token page anyway.
RAP SHEET — the deployer board
The rap sheet ranks deployers, not tokens. A row reads: the deployer's address, a chip, the percentage of
their launches that are dead, then 24 launches · 3.4/day · 2 alive, and finally their last
token with its age — marked live or struck through if it is gone. A kill-rate
bar rides on the row divider.
24 launches · 22 dead (92%) · 3.4 a day — and
up to 14 of their tickers, each with its verdict and either alive or the cause of death. With no
trail on file it says so plainly.Desktop columns: CREATOR · LAUNCHES · DEAD · KILL RATE · PER DAY · LAST TOKEN · LAST SEEN.
When a board is empty
| What you see | What it means |
|---|---|
| the feed did not answer. | The API failed. Press retry; the board also keeps polling on its own. |
| nothing matches these filters. | Your filter and sort exclude everything. reset filters restores that board's defaults. |
| nothing here matches that search. | No symbol, name or address contains your query. |
| Star a token to keep it here. | Empty watchlist. Tap ★ on any row, or press and hold it. |
| no leaderboard yet. | The traders index has not produced rows yet. |
3 · The token page
Everything known about one token on one screen: who made it, what the contract can do to you, who is holding it, who is trading it, and the chart to trade it on.
/desk/t/<address> — reached by tapping any row, pasting an address into search and pressing
Enter, or opening a shared link.
The header
$0.0₄2417 is
$0.00002417. The correct number is always painted first — the roll animation is decoration on
top of an already-correct figure.nlyra.xyz/desk/t/<address> — and if you have
claimed a @name, it automatically appends ?r=yourname, so every link you share is a referral
link. Uses your device's share sheet where there is one, otherwise copies with the toast link
copied.Under the header sits the socials row: website, X, Telegram, Discord and the block explorer, plus the
contract address as a dashed chip (tap to copy the full address) and a link to
The Constellation — a holder map of the token. Only http and
https links survive; anything else is discarded before it can be rendered.
The five numbers
0 means "we do not know" and is rendered as
—, never as zero.The verdict — what it actually checks
The verdict is the output of a contract scan. It is a risk score where higher is worse, banded into labels:
| Label | Score | What it means |
|---|---|---|
| SAFE | under 20 | We read the contract and found nothing that lets the creator take your money. |
| CAUTION | 20 – 44 | Something is off. The sentence under the header names it. |
| DANGER | 45 and up | One or more findings that can cost you the position. |
| BLUE CHIP | no score | A canonical asset — see below. No number is shown, deliberately. |
| UNSCANNED | — | Never scanned. It predates the watch or has never been called. |
| UNKNOWN | — | A stored verdict we could not interpret. |
The findings that carry the most weight
| Finding | Penalty | Why it matters |
|---|---|---|
| HONEYPOT — you will NOT be able to sell | +60 | The single worst result. You can buy and you cannot sell. |
| owner can EDIT your balance | +30 | Your tokens can be taken directly. |
| no security source returned data — impossible to audit | +30 | Nothing could be checked at all. |
| UNVERIFIED contract (hidden code) | +25 | Nobody can read what it does. Checked twice before it is said. |
| contract can SELFDESTRUCT | +25 | The token can be deleted. |
| MINTABLE — they can print tokens and dilute you | +22 | Your share can be diluted to nothing. |
| HIDDEN OWNER (disguised control) | +22 | The "renounced" ownership is fake. |
| UPGRADEABLE PROXY on a young token | +22 | Today's harmless code can become tomorrow's mint switch. |
| LP UNSECURED — liquidity rug risk | +20 | Under half the liquidity is locked or burned; whoever supplied it can pull it. |
| owner can RECLAIM ownership (fake renounce) | +20 | Renouncing was theatre. |
| one wallet holds N% of supply (≥50 %) | +20 | One seller ends the token. |
| very low liquidity — easy to drain (under $5K) | +18 | You may not be able to exit at any sane price. |
| sell tax N% (eats half your exit or more) | +40 | At 50 % or more of the sale. At 15 % it is +15, at 10 % +6. |
| transfers can be PAUSED (freeze) | +15 | Your sell can be switched off. |
| has a BLACKLIST function | +14 | Your address specifically can be blocked. |
| dev can RAISE the tax whenever they want | +12 | A 0 % tax today is not a 0 % tax at your exit. |
| pair created <24h ago | +10 | Nothing has been tested by time. |
| only N holders (under 50) | +8 | There is barely anyone to sell to. |
| creator holds N% (≥5 %) | +6 | The deployer can exit into you. |
A serial launcher also affects the verdict directly: a deployer with 5 or more launches and 80 % or more of them dead forces the verdict to at least CAUTION, whatever the contract says.
BLUE CHIP, and why it exists
Robinhood Chain is itself younger than the age threshold the scanner uses for "established assets", so nothing on this chain can clear that gate — the canonical WETH scores CAUTION on a plain reading, because it is technically an upgradeable proxy with unlocked liquidity.
BLUE CHIP is triggered by the deployer, not by a ticker list: the issuer that deployed every tokenised equity on the chain, the canonical bridged-asset deployer, and the USDG issuer. WETH and USDG themselves are canonical outright. On a blue chip the score is discarded entirely — "42 out of what?" has no honest answer for an asset like that — and every flag is restated as a note: the proxy becomes upgradeable proxy — standard for canonical and bridged assets, and the admin is the issuer.
When a DANGER is downgraded
A DANGER verdict with no measured hard finding (no honeypot, no tax, no pulled liquidity, no balance editing, no mint, no self-destruct), a clean creator, over $1M of liquidity and more than 30 days of age is downgraded to CAUTION, and it says so: downgraded from danger — $Nk of liquidity, N days old, and no honeypot, tax or pulled LP measured. The flags below are heuristics.
The chart
Timeframes
Eight, defaulting to 5m. Your choice is remembered per token, so 1h on one and 15m on another both survive moving between them. On a phone the strip scrolls with the active button centred.
PRICE / MCAP
One button that shows the mode it is currently displaying. In MCAP mode every price on the chart is multiplied by the supply, so you are reading valuation rather than unit price.
ƒx — the chart sheet
The ƒx button (or the I key) opens every chart setting. It wears a dot in its
corner whenever any indicator is on. Everything here persists.
| Setting | Options | Notes |
|---|---|---|
| TYPE | CANDLES / LINE | Also the C key. Switching preserves your zoom. |
| PRICE SCALE | LINEAR / LOG | Also the L key. |
| TRADE MARKERS | ALL / MINE / OFF | What arrows appear on the candles. |
| MARKER SIZE | S / M / L | Big trades are drawn 45 % larger again. |
| INDICATORS | EMA 9 · EMA 21 · SMA 50 · VWAP · Bollinger 20·2 | Each with its own colour, read out live in the legend. |
UTC+2)
is printed in the legend so there is never any doubt.Trade markers, and the 30-day rule
Arrows on the candles are real trades: green up-arrows below the bar for buys, red down-arrows above it for
sells, and your own trades always drawn, in accent, labelled you.
- Per bar the chart draws the biggest buy, the biggest sell, and always your own trade — otherwise a busy bar would be a wall of arrows.
- The history goes back 30 days. On opening the page and on every pool switch, the last 720 hours of swaps are loaded and merged underneath the live tape, so the arrows cover the whole chart rather than only the newest page. On a token whose history is being built for the first time, it retries for about a minute.
- A trade in the top quarter by size is drawn larger, and the three biggest visible trades get a dollar label — on desktop only.
- Hover or tap a bar for a tooltip listing the three newest trades in it: side, dollars, who, and age. The tooltip is always built from every trade — switching markers to MINE or OFF never empties it.
When one of your own trades fills, a dashed line is drawn at your fill price labelled you
bought or you sold for twelve seconds, with a colour flash and a sound. Open limit
orders show as dotted LIMIT BUY / LIMIT SELL lines, up to eight at a time.
Zoom, fullscreen, and setting a limit from the chart
- Mouse wheel, pinch and drag all zoom and pan. Vertical touch drag is deliberately off so scrolling the page never fights the chart.
⤢or theFkey goes fullscreen;✕orEscleaves. On a phone held upright you get a hint: rotate your phone for the full chart.- Press and hold the chart (or right-click) for about half a second and a popover opens
at that exact price, showing the distance from the current price, with
BUY LIMITandSELL LIMITbuttons. Either one opens the trade panel's LIMIT tab with that price already filled in. It works in MCAP mode too — the price is converted back to a unit price first.
TRADES tab
The live tape for this pool.
<$0.01, never $0.00.48.2M, or
0.0₉168 for dust. Never scientific notation.you and are tinted. A trade can arrive before we know whose it was — the placeholder is
dimmed and fills in a moment later without the row moving.The identity chips
| Chip | Means |
|---|---|
| LIMIT | Filled from a resting limit order, not a market buy. |
| DEPLOYER | This wallet deployed the token. If it is selling, that is information. |
| SCAMMER | Launched N tokens, N are dead. |
| SERIAL | A serial launcher. |
| CREATOR | Has deployed tokens before. |
Show more, and pinning
- 120 trades show at first. show more · N older trades adds 200 at a time, drawing on the 30-day store as well as the live tape.
- While you are scrolled into the list, new trades are buffered rather than injected and
a pill appears:
N new trades. Tap it to flush them and return to the top. Nothing jumps under your finger. - From the wallet sheet you can pin the tape to one wallet. A chip appears above the
header —
only 0x1234…abcd ✕— and only that wallet's prints are accepted until you clear it.
HOLDERS tab
Concentration
The colour is the warning: over 50 % red, over 25 % gold, below that green. If a handful of wallets hold most of the supply, the price is theirs to decide.
The list
Up to 20 holders, each with rank, address, percentage and a bar. Every one links to the block explorer. Contract addresses are labelled so you are not reading a pool as if it were a person:
| Label | What it is |
|---|---|
| DEPLOYER | The wallet that created the token. |
| LP | The liquidity pool itself. Not a holder in any meaningful sense. |
| ROUTER | A router or protocol contract. |
| BURNED | A burn address. Those tokens are gone forever. |
| STAKING VAULT TREASURY | Known protocol contracts. |
| CONTRACT | There is code at this address but we do not know its role. Not a trader. |
| FRESH | A wallet with fewer than 10 transactions ever. Often a fresh wallet made for this launch. |
| WHALE | A personal wallet holding 2 % or more of supply. |
FRESH label carries a similar signal for free.THE SCAN card
Seven rows summarising the contract read: HOLDERS, TOP 5 HOLD,
LIQUIDITY, BUY TAX, SELL TAX, CONTRACT (verified or not)
and PROXY (upgradeable or immutable). Non-zero taxes render red. Under it, the scan's findings
with a warning triangle, then its neutral notes.
When the measured top-5 figure arrives from the holder book, the scan's own TOP 5 HOLD row
hides itself — the screen never prints two different numbers for the same thing.
TOP TRADERS tab
Who has actually made money on this token, over the window the index has read — 24 hours by default, up to 7 days, with the real span shown in the header and on the tab badge.
# · wallet · PNL · PNL % ·
BOUGHT / SOLD · HOLDING (or the word out if they have exited) ·
TRADES · LAST.ORDERS tab
Your own limit orders on this token, plus any ladders and martingale cycles running on it. Reading them needs one cached signature — it is a private read, and it reuses the signature already in your session, so there is no second prompt.
Each order shows the side, what you are paying and what you will get, the status
(OPEN / FILLED / CANCELLED / EXPIRED /
FAILED), the trigger (below $0.0₄1401) and the time left. Open orders carry a
✕ to cancel; completed ones link to the transaction. Full mechanics in
§5.
Empty, it says: No orders on PEPE yet. Pick LIMIT above to set a price and walk away.
INFO tab
ACTIVITY · ON CHAIN
Four windows — 5M · 1H · 6H · 24H —
each button showing the price change over that window. Your choice is remembered.
MAKERS is the number of unique wallets that traded in the window — the figure that separates a token forty people are trading from a token two bots are trading. If the index has not covered a full day yet, the heading says so: ACTIVITY · ON CHAIN · 6H READ SO FAR.
SECURITY card
| Row | What it means | Colour thresholds |
|---|---|---|
| TOP 10 HOLDERS | The top ten people — burn addresses, pools, routers, vaults and every other contract are removed first. | green ≤ 15 % · gold ≤ 30 % · red above |
| DEV / CREATOR | What the deployer still holds. | green ≤ 5 % · gold ≤ 15 % · red above |
| CONTRACTS | Supply sitting in contracts, with a caption naming them. | — |
| BURNED | Supply permanently destroyed. | shown only when above zero |
| LP BURNED | How much of the liquidity is burned. Coloured on the remainder — what could still be pulled. | green if ≤ 10 % loose · gold ≤ 50 % · red above |
| LIQUIDITY | The pool type for non-V2 pools — V4 singleton pool or V3 concentrated with its fee. | — |
| CONTRACT | Verified or not. | green / red |
| ATH | The all-time high, how long ago, and how far below it you are now. | — |
| AGE | Age plus the exact creation date and time. | — |
| POOL | The pool address. Tap to copy. | — |
OUR RECORD
Present only when The Desk has actually called this token: our score, when we first saw it, how it has moved since, the price when it was called, the peak multiple, how it died if it did, 24-hour buys and sells, supply and decimals — and a READ OUR CALL button linking to the write-up.
PAIRS and ON CHAIN
PAIRS lists every pool for this token with its DEX and liquidity. Tapping one switches everything — the chart, the tape, the markers, the holder book and the top traders — to that pool. If a token has two pools and one is nearly empty, this is where you notice.
ON CHAIN is the plain link list: the token contract, the pool, the creator, and every website and social the token declares. All on the block explorer, all verifiable without us.
Keyboard shortcuts (desktop)
| Key | Does |
|---|---|
B | Jump to the buy amount |
S | Switch to sell |
1–4 | Fill a preset amount |
F | Fullscreen chart |
C | Candles / line |
L | Log / linear price scale |
I | Indicators and chart settings |
/ | Search |
Esc | Leave fullscreen, close a sheet, or go back |
? | This list |
The same sheet carries the trade sounds switch. Sounds are short synthesised tones — two rising notes on a buy, one falling note on a sell, a distinct two-note chime on a fill, a low thud for a transaction left with the chain, and a short low tone on an error. The speaker icon in the socials row mutes them.
4 · Trading — market orders
Buy or sell right now, at whatever the pool pays. The trade panel sits on the right on desktop and docks at the bottom of the token page on a phone.
The panel has two rows of controls: BUY / SELL, and MARKET · LIMIT · LADDER · MARTINGALE. This section covers MARKET.
Buying
Type an amount, or tap a preset
Presets are
0.01·0.05·0.1·0.5ETH — or10·50·100·500USDG in a USDG-quoted pool. A preset only fills the field. Nothing trades when you tap a chip. Under the field a live≈ $Xshows the dollar size.Or press MAX
Fills the field with your whole balance minus 0.0002 ETH kept for gas, and says so: MAX keeps 0.0002 ETH for gas. That reserve is roughly seventy transactions at this chain's prices. If your balance is under it you get Balance is below the 0.0002 ETH kept for gas and nothing is filled.
Check the slippage
The
slip 3%chip opens four options —1%·3%·10%·15%. Default 3 %, maximum 15 %. Your choice is remembered. Slippage is how far the price is allowed to move against you between pressing the button and the transaction landing; wider gets you filled more often and at worse prices.Read the quote line
It re-prices about a quarter of a second after you stop typing. Every figure is explained below.
Press BUY
If your wallet is not connected, the first press connects it and does not trade — the button says
BUY 0.01 ETH · CONNECT. Then press it again.Confirm in your wallet
You get Buy sent · waiting for the block… and the panel waits up to 90 seconds for the receipt.
Selling
The same panel with three differences:
- The presets are percentages of your position —
25·50·75·100— andMAXmeans all of it. There is no gas reserve on the token side; you are not spending ETH. - A sell always needs an approval first, one time, for the exact amount: Approve selling first — one time, exact amount. The Desk never asks for an unlimited approval.
- If you hold nothing you get You do not hold PEPE or Nothing to sell.
The quote line, number by number
0.9% when you arrived on a referral
link.you receive ≥ figure, because there the number is the whole point.The three warnings
BUY ANYWAY, and
you must press it twice. The arming lapses after six seconds, and any change to the
amount cancels it.BUY ANYWAY.Approvals
| What you are doing | Approval needed |
|---|---|
| Buying with ETH | None. ETH is sent with the transaction. |
| Buying with USDG | One exact-amount approval to the fee router. |
| Selling a token | One exact-amount approval to the fee router. |
What happens when it fills
A toast with the amount, the dollar value and a link to the transaction on the block explorer. The button
holds ✓ FILLED for a moment, a buy fires a small confetti burst and a haptic tap, and your fill
is drawn on the chart as a dashed you bought line for twelve seconds. Selling gets the same
toast in reverse — +0.0431 ETH for 12.4K CASHCAT — without the confetti.
Your position strip, your bag and your PnL all refresh a few seconds later.
When it does not fill
| Message | What happened | What to do |
|---|---|---|
| Reverted — the price moved past your slippage. Nothing was taken. | The pool moved between your press and the block. The transaction failed, which means it did nothing. | Try again, or widen slippage. You paid gas, nothing more. |
| The price moved. Check the new number and tap again. | The fresh quote differs from the one you were shown by more than 3 %. This never reaches your wallet — the panel just repaints with the new number. | Read the new figure and decide again. |
| Still pending. Check the explorer. | No receipt after 90 seconds. The transaction is probably still queued. | Follow the link. Do not re-send blindly. |
| Cancelled in wallet | You rejected the prompt. | Nothing happened. |
| Not enough ETH for gas | No ETH left to pay the network. | Top up. See §1. |
| no route for this pool yet | No usable path between these two tokens. | Check the PAIRS list on the INFO tab — another pool may work. |
| Trading opens when the router is live | The router is down. The rest of the desk still works. | Wait. |
| refused: … | A safety check caught something before your wallet opened. See below. | Nothing was signed. Re-quote and try again. |
"refused:" — the checks that run before your wallet opens
Every transaction The Desk builds is decoded and verified against what is on your screen
before it is handed to your wallet. Not the server's description of the transaction — the raw calldata
itself. If anything disagrees, the flow stops with a refused: message and your wallet is never
opened.
Among the things checked on a market swap: that the destination really is the NLYRA router and not some other address; that the chain id is 4663; that the token being bought is the token on screen; that the amount in the calldata matches the amount you typed; that there is a minimum output at all and it is not below what your slippage setting allows; that the fee is not above the published 1 %; that no unexpected referrer is being credited; and that the quote has not expired or been given an unreasonably distant deadline.
⚡ Quick buy from a list row
The bolt at the right of any board row buys 0.01 ETH of that token immediately, at the default slippage, without opening the token page. The chip is labelled with the dollar size so you know what you are spending. It is a convenience for small sizes — for anything you care about, open the token and read the quote first.
5 · Limit orders
Set a price and walk away. Your money never leaves your wallet, placing costs nothing, and the order can only ever execute on the terms you signed.
Placing one
Open the LIMIT tab
In the trade panel, or by pressing and holding the chart at the price you want — the panel opens with that price already filled in.
Choose a side
BUY / below marketorSELL / above market. Switching resets the default distance: −20 % for a buy, +50 % for a sell.Set the trigger price
Type a dollar price, or tap a percentage chip —
−10·−20·−30·−50buying,+25·+50·+100·+200selling. The two are the same control seen two ways: typing a price updates the percentage and vice versa. The current price is shown next to the label.Set the amount
Buying, the presets and
MAXwork exactly as in §4, with the same 0.0002 ETH gas reserve. Selling, the presets are 25 / 50 / 75 / 100 % of your position, defaulting to 50 %.Choose an expiry
1h·1d·7d·30d, defaulting to 7 days. The exact date and time it lapses is printed next to the label. 30 days is the maximum.Check you receive ≥
This is the real commitment — the minimum output you are signing for. Buying, its dollar value is computed at your trigger price, not at today's price, because that is the price the order will fill at.
Place it
The button walks through what it needs. See below — there may be one or two preparation transactions the first time, then one signature and no transaction at all.
You get: Order placed · buy below −20% · our keeper watches it.
What actually gets signed, and what gets sent
How a fill happens
An off-chain keeper watches the pool. When it will pay your minimum plus a small margin, the keeper simulates the execution and, if it passes, submits it. The contract then pulls your funds through Permit2 — validating your signature, your deadline and burning the one-time nonce — swaps along the route you signed, takes the fee you signed, and delivers the output to you.
FAILED rather than being retried forever. An order placed without the balance or the
approval to back it is rejected outright at placement — an order that can never fill is not worth
keeping.The orders list
OPEN · FILLED · CANCELLED ·
EXPIRED · FAILED, plus CANCELLING… while a cancel is in
flight.LIMIT BUY /
LIMIT SELL lines, up to eight at once.Cancelling
Cancelling is on-chain and mandatory — a book entry alone would not stop a signature that already exists.
Press ✕ on the order
You sign a short message identifying the order, and the server hands back the cancel transaction. Nothing in the book has changed yet.
Confirm in your wallet
Cancelling on-chain — confirm in your wallet. The transaction costs about 30,000 gas — roughly $0.001. When the panel says "cancel free" it means there is no protocol fee; you still pay the network.
Wait for the receipt
Only a confirmed transaction closes the order. If you reject the prompt: Cancelled in wallet — your order is still open. It is only cancelled once the chain says so. That sentence is the whole design: the book never lies to you about what the chain believes.
Limits and refusals
| Rule | Value |
|---|---|
| Minimum order | 0.00085 ETH (≈ $2), or 1 USDG |
| Maximum expiry | 30 days |
| Open orders per wallet | 50 |
| Fee | 1 % on fill (0.9 % referred). Nothing on placement or cancellation. |
| One side must be ETH/WETH or USDG | Token-to-token limit orders are not supported. |
Messages you may see: order too small — minimum 0.00085 ETH · expiry too far (max 30d) · too many open orders · duplicate order · Not enough ETH to fund this order · You do not hold PEPE yet.
As with market orders, the typed message is verified field by field against what is on your
screen before your wallet is asked to sign it — the spender, the amount, both tokens, the trigger,
the expiry, the nonce, the fee, the referrer and the route hash. Anything that disagrees produces a
refused: message and no prompt.
6 · Ladder
One deposit, many limit orders spread across a price range. Buy the whole way down, or sell the whole way up, without placing twenty orders by hand.
Placing one
Open the LADDER tab and pick a side
BUY (below market)orSELL (above market).Enter the amount
The total for the whole ladder. Presets and
MAXbehave exactly as elsewhere, with the same 0.0002 ETH gas reserve on an ETH-funded buy.Set the range
Two fields,
fromandto, each a sign and a percentage. Quick ranges are offered: buying,−2% → −30%(the default),−5% → −50%,−10% → −90%; selling,+2% → +30%,+10% → +100%,+50% → +500%.Choose how many rungs
A slider from 2 to 40, defaulting to 10. The header updates live: 10 orders · 0.005 ETH each.
Choose an expiry
1d·7d·30d, default 7 days.Read the preview, then place it
One transaction moves the funds into escrow and creates every rung at once. Buying with ETH needs no approval; selling a token, or buying from WETH you already hold, needs one exact-amount approval to the ladder contract first.
You get: Ladder placed · 10 buys −2% → −30% · our keeper fills the rungs.
The preview
How rungs fill
- The keeper works on one rung at a time per ladder — always the nearest unfilled one.
- Each fill pays you directly. The tokens (or ETH) from a filled rung go straight to your wallet; only the unspent deposit stays in escrow.
- Rungs are independent. A ladder that is three-tenths filled has delivered three rungs' worth to you and still holds the other seven.
- Fills appear in the tape attributed to you, not to the contract.
The ladders list
One dot per rung, lit when filled. Tap a dot for that rung's detail: its number, its distance, its price, its size, and either what it filled into (with a link to the transaction) or the word open. The sub-line gives the range, what is left in escrow and the time remaining. A rung filling flashes the card.
Each open ladder also draws its outer envelope — the nearest and farthest open rung — on the chart.
Cancelling
The flow mirrors a limit cancel: sign a short message, get the transaction, confirm it, and only a confirmed receipt closes the ladder. Ladder cancelled — the remainder is back in your wallet. Reject the prompt and you get Cancelled in wallet — your ladder is still open. It is only cancelled once the chain says so.
After expiry the same button serves as the refund — and, as with every escrow on The Desk, the expiry refund can also be triggered by anyone and still pays only you.
Limits, and one thing to know
| Rule | Value |
|---|---|
| Rungs | 2 to 40 |
| Minimum per rung | 0.00085 ETH (≈ $2) |
| Expiry | 1, 7 or 30 days |
| Fee | 1 % per fill (0.9 % referred). One transaction to place, one to cancel. |
| Range | A buy ladder must reach below the market and cannot go past −100 %; a sell ladder must reach above it. |
Other validation messages: Give the range a from and a to. · A buy ladder must reach below the market. · You hold 1.2M CASHCAT — less than this ladder sells. · You need 0.05 ETH to fund this ladder.
7 · Martingale
Buy a first amount, then buy bigger every time the price drops a step, then sell the whole position once it is up by your target over the average cost.
Martingale is listed in the bots hub but it runs from the trade panel: open a token and
pick the MARTINGALE tab. It is long-only in this version — the SELL side is present but
disabled, marked v1: long only.
Setting one up
| Control | Default | Range | What it does |
|---|---|---|---|
| base · first buy | 0.01 ETH | ≥ 0.00085 ETH | Level 0, bought at market as soon as the cycle starts. |
| multiplier | ×1.5 | ×1.25 · ×1.5 · ×2 (contract allows ×1 – ×3) | How much bigger each level is than the one before. |
| step · drop per level | −5 % | 0.1 % – 50 % | How far the price must fall before the next level buys. |
| levels | 5 | 1 – 12 | How many buys in total, including the first. |
| take-profit · over avg cost | +3 % | 0.1 % – 100 % | Sells the entire position when it is worth this much more than was spent. |
| stop-loss | off | any price below spot | Sells everything and closes the cycle. Optional. |
| auto-restart | off | on / off | After a take-profit, starts again with the unused budget. |
| expires | 7 days | up to 30 days | After this the cycle stops buying and the funds are refundable. |
The percentage chips and the free-text fields are two views of one value — tap a chip and the field updates, type in the field and the chips un-press.
START MARTINGALE · BUDGET 0.1319 ETH. The whole budget is
deposited up front.The simulation
The panel paints its own estimate immediately (badged estimate) and replaces it with the
server's simulation a moment later.
price ÷ (1 + step)^k, so with a 5 % step and five levels the sequence is 0, −4.76 %,
−9.30 %, −13.62 %, −17.73 %.The header line above the slider says the same thing in words: 5 buys · entry + 4 dips · to −17.7 %.
Starting it, and how it runs
Press START MARTINGALE
One transaction moves the entire budget into the martingale escrow. No approval is needed — it is plain ETH sent with the transaction. As with everything else, the calldata is verified against your settings first: the base, the multiplier, the step, the take-profit, the level count, the auto-restart flag and the stop loss all have to match, or it is refused.
Level 0 buys at market
On the keeper's first pass, with 3 % slippage allowed.
Each further level waits for its price
And this is enforced by the contract, not by the keeper: level k can only execute at or below the previous fill's price divided by (1 + step). The keeper cannot trigger a level early.
Take-profit sells the lot
The keeper quotes the whole position each pass. When it fetches at least what was spent plus your target, it sells everything and pays you in native ETH. The target is fixed in the contract at creation.
With auto-restart, it goes again
The level counter resets and the cycle continues on the unused budget, provided at least one more base-sized buy fits. Without it, the cycle closes and the remainder comes back.
Reading the cycle card
Ending a cycle
Five things can end it, and you control three of them.
Take-profit
Automatic. Sells everything, pays you in ETH. With auto-restart it begins a new round instead of closing.
Stop-loss
If set. Sells everything, closes the cycle. Contract-enforced with a 3 % slippage allowance.
CLOSE — sell now
You decide. Sells the whole position at market and returns the proceeds plus the unspent budget in one transaction. Cycle closed — sold, the ETH is in your wallet.
WITHDRAW — tokens + ETH
You decide. Nothing is sold. The tokens come back to your wallet as they are, with the unspent ETH. Works while paused and after expiry.
Expiry
Buying stops. Nothing is forfeited — WITHDRAW still works, and after expiry anyone can trigger the refund, which still pays only you.
SET SL field on the card: type a USD
price and confirm, or leave it empty to remove it. Stop loss set at $0.0995 · the keeper watches
it. Cycles created on the older contract have no stop loss at all and say so.Limits
| Rule | Value |
|---|---|
| Minimum base | 0.00085 ETH (≈ $2) |
| Multiplier | ×1 to ×3 |
| Step | 0.1 % to 50 % |
| Levels | 1 to 12 |
| Take-profit | 0.1 % to 100 % |
| Expiry | 10 minutes to 30 days |
| Fee | 1 % per fill (0.9 % referred). No performance fee. |
| Direction | Long only in this version. |
withdraw(id) on the martingale
contract returns the escrowed tokens in kind plus the unspent ETH, with nothing sold and no route data
needed. Details at /desk/help/bots.8 · Bots
Strategies that keep trading while you are not looking. Your money sits in an escrow contract that only your wallet can empty — never with us.
/desk/bots · three tabs: My bots · Create · Leaderboard.
Creating a bot
Open Create and pick a strategy
Six cards, each with what it does and what it is best for. A card marked Soon is not live yet.
Pick a token
Search by symbol or name, or paste an address. The list is sorted by liquidity and dead tokens are filtered out. Arriving from a token page pre-selects it.
Set the amount
Chips give you 0.1 / 0.25 / 0.5 / 1 ETH, and
MAXleaves 0.002 ETH behind for gas. The hint under the field tells you the dollar size and, for grids, that half is kept in ETH and half is bought at the start.Leave AUTO on, or set the parameters yourself
⚡ Auto · 7d volreads the token's 7-day volatility and picks the range and spacing for you. Typing in any strategy field switches it toManual. See below.Read the preview — and the rejection if there is one
The preview backtests the configuration and shows the net profit per grid, the estimated return and the price impact. If the configuration cannot be profitable, the CREATE button stays disabled and a red box tells you why.
Decide whether it is public
Make public · leaderboard — listed right away · copiers make you their referrer (30 % of fees). A private bot never appears anywhere.
Create it
One transaction. Before your wallet opens, the transaction is pinned to the right contract on the right chain with readable calldata and a quote that has not expired. The button walks through
PREPARING…→SIGN IN WALLET…→WAITING FOR THE BLOCK…, and you land on the bot's detail page.
The six strategies
Infinity Grid
livebest for uptrendsSells a fixed ETH value on every step up and buys it back on every step down, with no ceiling. Each round trip banks the step. Designed for a token you are happy to hold while it moves.
| Field | Default | Range | What it does |
|---|---|---|---|
| You deposit | 0.5 ETH | — | Half is bought at market immediately; half becomes the reserve that funds the buys below. |
| Profit per step · net | 4 % | 2.5 – 50 % | The net profit per completed step, after the 1 % fee on each leg and the pool fee. The step is what you keep. |
| Floor price | auto | below spot | The bot stops buying below this. Set it where you would stop buying by hand. Up to 60 rungs fit below it. |
| Take profit | off | +25 / +50 / +100 % | Sells everything and closes the bot at that price. |
| Stop loss | off | −10 / −20 / −30 %, or any price | Sells everything and closes the bot. You are guaranteed at least the stop price minus 3 %. |
Withdraw yourself with stop(id, 0x, 0, false). Add funds:
yes, on v3 bots.
Spot Grid
livebest for sideways chopN levels between two prices you choose. Each level buys at its own price and sells at the next one up. More predictable than Infinity Grid when you have a view on the range.
| Field | Default | Range | What it does |
|---|---|---|---|
| You deposit | 0.25 ETH | — | Split across the levels. Levels above the current price are bought at market inside the creation transaction. |
| Lower / Upper | auto | lower < upper | The range. Each field shows its distance from spot as a percentage. |
| Grids | 12 | 2 – 60 | How many levels the range is cut into. More levels means smaller profit per level. |
| Mode | Geo | Geo / Arith | Geometric spacing (equal percentages) or arithmetic (equal dollar gaps). |
| Stop loss | off | below the range | Sells everything and closes the bot. |
| Take profit | off | above the range | Sells everything and closes the bot. |
The profit per level is enforced by the contract, not by us: it refuses a configuration whose worst level nets under 2.5 %, and it refuses a keeper sale below the level's own floor. The keeper cannot sell a level at a loss.
Withdraw yourself with stop(id, 0x, 0, false). Add funds:
yes, on v3 bots. The stop loss cannot be changed later — the contract has no setter for
it.
DCA
livebest for accumulatingFixed ETH buys on a schedule, so your entry is an average instead of one bet on one moment.
| Field | Default | Range | What it does |
|---|---|---|---|
| Total budget | 0.2 ETH | — | The whole plan. |
| Per buy | 0.02 ETH | ≥ 0.00085 ETH | Each instalment. |
| Every | 6 hours | ≥ 5 minutes | The interval. It re-arms from the block it actually fires in, so a keeper outage never causes a burst of catch-up buys. |
| Buys | computed | 1 – 1000 | Budget ÷ per buy. Read-only. |
| Take profit | off | +25 / +50 %, ≤ 100 % | Sells everything once the escrowed tokens fetch that much more than was spent. |
| Stop loss | off | below spot | Sells everything and closes the bot. |
By default each purchase is delivered straight to your wallet. Setting a take-profit or a stop loss changes that — the tokens have to stay in escrow for the bot to be able to sell them.
There is a deviation band of 10 %: if the price runs more than that above the last buy, the plan pauses rather than chasing. The bot's status line says so, and you can re-anchor it to buy anyway.
Withdraw yourself with stop(id, 0x, 0, false).
Martingale
runs from the trade panelbest for dip reversalsScales into a falling price with progressively bigger buys, then exits the whole position at a target above the average cost. It is listed in the bots hub but it is not created there — pressing the card tells you: Martingale runs from the trade panel: open a token → MARTINGALE tab.
Full documentation, including every parameter and the cycle mechanics, is in §7.
Withdraw yourself with withdraw(id) — you get the tokens bought so far
plus the ETH still reserved for the levels that never triggered, without anything being sold.
Smart Rebalance
Coming soonbest for baskets2–4 tokens at target weights, rebalance on drift.
This is not built yet. There is no contract and no engine behind it. The card is greyed out, pressing it says Smart Rebalance is coming soon, and going to its URL directly gives you the same message. It cannot be copied from the leaderboard either. It is documented here because it is visible in the product, not because you can use it.
Its risk line is already written for the day it ships: Rebalancing sells winners to buy losers. A token going to zero drags the basket.
TWAP
livebest for big ordersOne large order chopped into slices executed at intervals, so you do not move the price against yourself. Unlike DCA this is a single order you want completed, not an ongoing plan.
| Field | Default | Range | What it does |
|---|---|---|---|
| Side | Buy | Buy / Sell | Buying spends ETH; selling spends the token (and needs an approval). |
| You buy with / You sell | 0.5 ETH | — | The full order size. |
| Over | 60 min | interval ≥ 60 s | How long the whole order takes. |
| Slices | 12 | 1 – 200 | How many pieces. The last slice carries the remainder and closes the order. |
| Limit · max above spot | 3 % | 0 – 50 % | Caps what any single slice can pay. Enforced by the contract on every slice. |
Each slice is delivered straight to your wallet as it executes.
Withdraw yourself with stop(id) — you get back everything not yet
executed.
AUTO mode
The ⚡ Auto · 7d vol toggle is on by default for both grids. With it on, the range and spacing
fields are left blank and the server derives them from the token's own history. It writes the numbers it
chose back into the form, so you always see what it decided.
spacing = vol ÷ 8, clamped to 3 % … 12 %
Spot Grid — lower = min(7-day low × 0.95, price × 0.97)
upper = max(7-day high × 1.05, price × 1.03)
grids fitted to the spacing, clamped 2…60
Infinity Grid — step = the spacing
floor = min(7-day low, price × 0.95)
Typing in any strategy field — or switching geo/arith — flips the toggle to Manual and your
numbers are used from then on. AUTO is not offered for DCA or TWAP, where the fields are the
strategy, and it is never used on a copied bot.
The preview, number by number
The preview redraws about half a second after any change. It plots your levels over real candles and shows six tiles.
Under the tiles you get the per-level size in ETH and dollars, and how many sell levels will be seeded at the start. Under the parameter fields there is a live line: Profit per grid 7.28 % gross · net ≈ +3.05 % after 1 % fee each leg.
The backtest
The profitability guard
A bot that cannot be profitable cannot be created. This is not a warning you can click through — the preview returns a rejection, the CREATE button stays disabled, and the server refuses to build the transaction at all.
after the 1 % Desk fee on each leg and the pool fee on each leg
The rejection tells you how to fix it, with the exact maximum for your range:
| Rejection | What to change |
|---|---|
| net profit per grid 1.14 % < 2.5 % minimum — widen the range or use fewer grids (max 16 for this range) | The levels are too close together to clear the fees. Use fewer grids or a wider range. |
| per-level amount 0.0006 ETH < minimum 0.00085 ETH — fewer grids or more budget | Each level has to be able to place a real order. |
| current price 0.122 is outside the range 0.11–0.13 | The bot would sit idle from the start. |
| pool too thin for this size: impact 180 bps > 150 | Your own order would move the price too much. Smaller size, or a deeper pool. |
| floor 0.09 is above the current price 0.122 / floor too close to the price: not even one rung fits below | Infinity Grid needs room below the price. |
| interval 120s < minimum 300s (5 min) | DCA cannot buy more often than every five minutes. |
| schedule (45 d) runs past the 30 d expiry — fewer buys or a longer expiry | Bots live 30 days maximum. |
| take-profit needs the tokens in escrow (deliver=0) | DCA cannot both deliver each buy to your wallet and sell them later. |
| stop loss 0.14 must be below the current price 0.122 | A stop on a long sits below the price. |
Where the preview can suggest a fix it offers an inline Fix it → button that switches to Manual and applies it.
Stop loss and take profit
Both sell the entire position and close the bot. Neither is a partial exit.
Add funds
An open v3 Spot Grid or Infinity Grid can take more ETH without being restarted. Older bots cannot — the button is disabled with the note this bot was created before top-up existed — open a new bot with the extra amount.
Press Add funds
On the bot's detail page, next to Stop.
Choose an amount
Chips are 0.01 / 0.05 / 0.1 ETH, or type your own. The minimum is 0.0017 ETH; below it the sheet says Too small — add at least 0.0017 ETH — half of it is bought at market.
Read the split estimate
It updates as you type: 0.05 ETH → 0.025 ETH market buy ≈ 210 CASHCAT · 0.025 ETH for 3 buy rungs below (was 2).
Sign and send
One signature plus one transaction. Before sending, the client checks the transaction goes to this bot's contract and that the value matches what you typed to nine decimal places.
ADD row. It never inflates the grid profit or the fill
count, and it lands in the same bot record — so the same withdrawal returns it too.The bot detail page
The five tiles
The two charts
The PnL curve plots total PnL as an area with grid profit and floating PnL as lines, from a snapshot taken every five minutes. Until there are two points it says the PnL curve starts with the first fill.
The grid chart draws candles since the bot was created with every level on it:
solid and labelled when a level is armed, dotted grey when it has already
filled. Your floor, stop, take-profit and the current price are all marked. Fills appear as arrows on the
candles — green up-arrows for buys, red down-arrows for sells, with the amount, collapsing to ×3
when several land on the same bar. Scroll or pinch to zoom, drag to pan, double-click to
reset, and the ⤢ button expands the chart to full width — a choice remembered on your
device. Your zoom survives a refresh.
The fills list
Nine columns: Side · Level · Price · Amount · Value · Fee · Pair profit · Tx · Age. Eight rows
show at first with a Show 20 more button under them.
+3, −2).The header explains the accounting in one line: profit booked when a buy closes against its sell.
Stopping a bot
Before you choose, the panel shows exactly what is in the escrow, what the token is worth now, the grid profit already locked, what the floating PnL would become if sold, and the fee and slippage a sale would cost.
Sell all → ETH
The keeper market-sells the token at up to 3 % slippage and sends all the ETH to your wallet. You pay the usual 1 % fee plus the pool fee on that one sale. Everything becomes realised.
Keep tokens
No swap, no slippage, no swap fee. The token comes back to your wallet exactly as the bot holds it, together with all unused ETH. You sell where and when you like. Cheaper in gas too.
Either way it is one signature plus one transaction from your wallet, and the contract refuses if the keeper is mid-fill. Both modes work while the contract is paused and after expiry. Your bot shows as stopped within a few seconds.
The leaderboard and copying
The Leaderboard tab lists public bots that are in profit, ranked by return, over 7 or 30 days. A losing bot never appears. A private bot never appears. Each row shows the creator, the strategy and token, how many copies it has, and its APR.
What copying does
Press Copy
You land on a create screen in copy mode. Every strategy field is hidden and there are no level lines on the chart — the preview header just says 24 levels · strategy hidden.
Choose your own amount and duration
Those are the only inputs: the amount, and Runs for — 7, 14 or 30 days. The card shows the source bot's PnL, runtime and fill count so you can judge it.
Create it
The strategy is cloned server-side, scaled to your amount and re-based to today's price — every level, floor, stop and target is shifted by how far the price has moved since the original was created. It runs in your own escrow, from your own wallet.
What bots cost
A practical floor: an Infinity Grid with a 4 % step needs roughly 0.025 ETH before the per-step size clears the minimum fill.
Reading the hub
Status chips on each bot: Running Out of
range Stop loss Take profit
Expired Paused Pending
Closed. Filters let you see Active, Closed or
All — stopped bots stay with their final PnL so the history counts.
A small tag at the top says whether the keeper is alive (keeper ok · 1.4s) or not (keeper offline). If it is offline, no bot is filling anything.
9 · Predict
One question — is Bitcoin higher at the end of this five-minute window than at the start — offered through two completely different pools. /desk/predict
Two pools, one bet
| NLYRA pool | Polymarket pool | |
|---|---|---|
| Where | Our own contract, Robinhood Chain 4663 | Polymarket's order book, on Polygon |
| You stake | ETH | pUSD |
| Mechanism | Parimutuel — you split the losing side's stake. The payout moves until lock. | Order book — you buy UP or DOWN shares at a price in cents; a winning share pays $1. |
| Settled by | PredictOracle, bounded on-chain by Chainlink | Chainlink BTC/USD 60-second TWAP named in the market rules |
| Depth | Thin. With little in the pool the odds are lopsided and one bet moves them. | Deep. Six figures can be resting in a single window. |
| Minimum | 0.0004 ETH | 5 pUSD |
| The Desk takes | 3 % of the pool | A builder fee, currently 0 % |
| Exit early | No — a bet is committed until the round resolves | Not from The Desk. Only on Polymarket's own site. |
The pool switcher sits at the top of the page. The Polymarket tab labels itself with the live depth of the current window — that number is the entire reason the pool exists.
The NLYRA pool, step by step
Find the NEXT card
The carousel holds up to seven cards: the last four settled rounds, the one running now, the one open for bets, and the one after that. Badges are
EXPIRED,LIVE,NEXT,LATER. Only theNEXTcard takes bets. The page centres it for you when it loads.Press UP or DOWN
The card flips to a ticket. If you press with under 5 seconds to lock you get told to take the next window instead.
Type an amount
Chips give you
0.001·0.005·0.01·0.05·MAX, and the ticket opens pre-filled at 0.005 ETH.MAXleaves 0.0006 ETH behind for gas.Read the payout preview
It reads If UP wins you collect 0.0121 ETH — 2.42× at this pool size. That figure already includes your own money in the pool, which is more honest than showing you the multiplier from before you bet. It is still not the number you will be paid — see the warning below.
Confirm and sign
The button walks through
PREPARING…→SIGN IN WALLET…. Before your wallet ever opens, the transaction is checked: the right contract, chain 4663, readable calldata, and a wei value that matches the string you typed to the last digit. Anything off and it is refused with no prompt.Wait for the round
Your entry shows immediately as confirming… and the other side is greyed out — one side per wallet per round. At lock the round takes its price and stops accepting entries; five minutes later it closes.
Claim
Nothing is paid automatically. When the round settles the card grows a
CLAIM 0.0031 ETHbutton, and the "Your record" panel gets a claim-all. One transaction can settle up to 128 rounds at once.
Round timing, exactly
The three prices — and why that matters
Predict deliberately keeps three separate BTC numbers apart, and confusing them is the fastest way to misread the screen.
| Number | Where it comes from | What it does |
|---|---|---|
| The line and the big price | A direct exchange socket in your own browser — Binance first, Coinbase as a fallback. If both fail, our own 1-second composite (the median of Binance, Coinbase and Kraken). | Display only. It settles nothing. |
| The settlement price | PredictOracle, published once per round. | This, and only this, decides who wins. |
| The anchor | Chainlink BTC/USD on this chain. | Bounds what the oracle is allowed to publish. |
The chip in the header says which is which — live: Binance · settles: PredictOracle (Chainlink-bounded) — and turns amber when the exchange socket drops, with the note that settlement is unaffected.
Why there is an oracle at all, and what stops it lying
Chainlink's BTC/USD feed on Robinhood Chain republishes on a 0.5 % move or a 24-hour heartbeat. Measured on-chain, the median gap between updates is about 2.6 hours. Settling a five-minute round straight off it would print the same price at lock and at close nearly every time — every round a draw. So a keeper-fed oracle supplies the granularity.
Chainlink is not bypassed; it is the fence. Publishing to the oracle runs this check on-chain, and reverts if it fails:
if deviation > 10 % → revert OffAnchor
- The pushed price must be within 10 % of the live Chainlink answer or the transaction fails. The keeper cannot print a number; it can only fill in detail inside a band Chainlink vouches for.
- If Chainlink itself is down, the push reverts too — there is no "anchor unavailable, publish anyway" path.
- The oracle round id must strictly advance. Re-serving the same reading does not count as fresh, and the round is cancelled rather than settled twice on one number.
- The keeper refuses to post at all unless at least two of its three exchange feeds are fresh. It will not settle a round on a single source.
The fee and the payout, exactly
fee = total × 3 %
reward = total − fee
your payout = your bet × reward ÷ (winning side's pool)
total × 3 %. This manual describes what the contract does.A worked example
| Step | Value |
|---|---|
| UP pool | 0.0240 ETH |
| DOWN pool | 0.0110 ETH |
| Total pool | 0.0350 ETH |
| Multiplier shown on UP | 0.0350 × 0.97 ÷ 0.0240 = 1.41× |
| Multiplier shown on DOWN | 0.0350 × 0.97 ÷ 0.0110 = 3.09× |
| BTC closes below the lock price | DOWN wins |
| Fee | 0.0350 × 3 % = 0.00105 ETH |
| Reward pot | 0.03395 ETH |
| You bet 0.0010 ETH on DOWN → you collect | 0.0010 × 0.03395 ÷ 0.0110 = 0.003086 ETH |
| Everyone on UP | Loses their entire stake |
Minimums and maximums
MIN 0.0004 ETH and refuses.NOT
ENOUGH ETH once the amount exceeds your balance minus the 0.0006 ETH gas reserve.Draws, refunds and cancelled rounds
Two things can happen that are neither a win nor a loss, and the page never renders either of them as a loss.
A round is cancelled when: the oracle was stale at lock or at close; the oracle's round id did not advance; the keeper missed its 30-second lock or close window; a round was never locked; or the contract was paused with a round open. Each cancel is recorded on-chain with its reason.
refundable() starts returning true by itself. No keeper, no operator and no
human at The Desk is needed for a player to reclaim their money from a round that never settled.What every number on the screen means
— and the label changes to be
first.The chart shows a 30-minute window (20 on a narrow phone) with each round drawn as a band, coloured green or red by its outcome and grey when void. The leaderboard tab ranks by PnL or by streak over 24 hours or 7 days, with a flame on anyone running three or more wins.
The Polymarket pool
This surface trades Polymarket's own book. Your counterparty, the price and the settlement are theirs. The Desk stamps its builder code on the order so the routing is attributed to it, and that is the whole of our involvement.
Fund a Polygon wallet with pUSD
This pool settles in pUSD on Polygon — not USDC.e, and not the ETH the NLYRA pool uses. You deposit it on Polymarket or bridge to Polygon; The Desk has no deposit flow and never takes custody. The page checks your balance and your two approvals (pUSD for the exchange, and your outcome tokens) and shows you exactly which step is missing.
Pick a window
Up to four five-minute windows are shown, the first badged
NOW. Each card shows the price of each side in cents —61¢/40¢— with the implied multiplier under it, the depth in the book, and the 24-hour volume.Press UP or DOWN and enter an amount
Chips are
$5·$10·$25·$100. The minimum is 5 pUSD and prices move in 1¢ ticks. The preview tells you how many shares you get and reminds you they are worth $0 if you are wrong.Sign twice
Your wallet is switched to Polygon. You sign the order itself, and once per session you sign to mint your own Polymarket API key. Those credentials live in your browser only and never touch a Desk server. The order goes straight from your browser to Polymarket.
Three checks run before any signature: the order must be for chain 137, must be signed by your address, and must carry the builder code we advertised.
Collect on Polymarket
A winning share is worth $1 once the market resolves, but the payout is claimed from the contract on Polygon. There is no redeem button here — Polymarket's own site does it for you and is the easiest place to collect.
Messages you may see
| Message | What happened |
|---|---|
| That round just locked — the next one is open | You were a moment late. Nothing was sent. |
| Too late — this round is locking | Under two seconds to lock; the bet is refused rather than risked. |
| You already have a position in this round | One side per wallet per round. |
| PREDICT is paused — no new entries | The contract is paused. Existing rounds still resolve or refund; claims still work. |
| The transaction reverted — nothing was taken | The bet did not land. Your optimistic entry is removed and your money never left. |
| Not enough ETH for this bet plus gas | Leave at least 0.0006 ETH for the transaction. |
| refused: … | A safety check failed before your wallet was ever opened — wrong chain, wrong contract, a claim carrying ETH, or an amount that does not match what you typed. Nothing was signed. |
| PREDICT is warming up | The round feed is not answering. The page retries every second on its own. |
| Polymarket is not answering | The 5-minute markets are fetched from Polymarket every second and a half; this is their side. |
10 · MY BAG & how PnL is calculated
The board of things you own answers a different question from the board of things that exist, so it shows different numbers.
Opening it
Connect your wallet
Without one there is nothing to show, and the filter is not remembered across sessions when no wallet is connected — a saved preference must not open an empty board.
Press
MY BAGon the market board's filter railThe board switches to your holdings and the sort jumps automatically to VALUE, largest first. Leaving MY BAG puts the sort back to VOL.
What appears: every token your wallet holds. That includes tokens on no board at all — they are fetched individually so you get a real row rather than a bare address.
What the row shows
— together when there is no cost basis.On desktop the same four figures replace MC / LIQ / VOL / BUY PRESSURE in the table, as
VALUE · AVG COST · UNREALIZED $ · UNREALIZED % — on the board of things you own, the four
numbers that matter are yours. Each of them is also a sort.
How PnL is actually computed
This matters more than it looks, because it is the difference between a number you can trust and a number that flatters you.
holding × avgCost, and only when both the average cost
and the current price are known and positive.unrealised ÷ cost × 100.—. It
is never quietly treated as a zero-cost buy, because that would print an infinite gain.The totals strip
Above the rows, only on the market board with MY BAG on and something in the bag:
— if no position has a basis at all.The dust filter
A position worth less than $0.50 is dust. Dust is hidden by default — otherwise a wallet that has touched fifty tokens shows fifty rows of nothing.
- The button reads
show dust · 4 under $0.5when hidden, andhide dustwhen shown. It only appears when you actually have dust. - The setting is remembered.
- The toggle governs rows, not totals. OPEN POSITIONS and UNREALIZED always count every position, dust included, so the totals do not jump when you press it.
Empty states
| Situation | What it says |
|---|---|
| Wallet connected, nothing held | Nothing in the bag yet — the tokens you hold show up here a few seconds after a fill. |
| No wallet | Connect your wallet to see the tokens you hold. |
Both offer a link to open my account.
11 · Leaders
Five rankings, three windows, and one rule that makes the whole thing honest: only what happened through The Desk counts.
/desk/leaders · no wallet needed to look, no signature required. Connect one and your own row appears at the bottom.
The five boards
| Tab | Ranks by | Second figure on the row |
|---|---|---|
| TRADES (default) | Number of trades | Signed PnL |
| VOLUME | USD volume, buys and sells | Signed PnL |
| PNL | Realised PnL | Win rate |
| REFERRERS | Fees earned | Referral count |
| BOTS | Total bot PnL | APR |
Windows: 24H · 7D (default) · 30D. The board calls
them today, this week, this month in prose. Both the tab and the window are
written into the URL, so any view you are looking at is a link you can send.
Reading a row
Rank · avatar · handle (or a shortened address) · the address with a copy button · a sub-line · the ranking value · a second figure · a trend arrow. With three or more entries the top three are lifted into a podium, laid out 2 · 1 · 3 with the winner raised in the middle.
0x1234…abcd and link to the block explorer instead of a Desk profile.Your row
With a wallet connected, a highlighted row is pinned for you. If you are ranked it shows your place with a
#. If you are not, it says exactly why rather than leaving you guessing:
| Board | What it says |
|---|---|
| PNL | not ranked: no closed trade with a known entry in this window |
| REFERRERS | not ranked: nobody traded on your link in this window |
| BOTS | not ranked: no public bot in profit |
| TRADES · VOLUME | not ranked: no trades through The Desk this window |
The counting rules
These are printed under each board, and they are the whole reason the numbers mean anything:
- Only trades made through The Desk count — market, limit, ladder and bots. Trades you made elsewhere on the chain are invisible here. This board is not a chain-wide ranking and does not pretend to be.
- A sell without a known entry is not booked as profit. That is the anti-inflation rule: buy somewhere else, sell through us, and the sale does not become a 100 % win. Only wallets with a closed trade rank on PNL at all.
- Escrow fills count for the maker, never for the contract. A ladder or bot contract can never appear on the board with everybody's fills credited to it.
- Referrer fees are the referrer's 30 % share of every fee a referred trader paid through the router inside the window.
- Bots: public and in profit only. A private bot never appears, and a public bot with negative PnL does not appear either. Copying a public bot clones the strategy into your own escrow and pays its creator 30 % of your swap fees.
- Everything is counted from Aug 21, 2026, the day the index started.
Sharing
The SHARE button uses your device's share sheet where there is one, and copies to the
clipboard otherwise. Ranked, it produces I'm #7 on The Desk leaderboard (most trades, this week) →
nlyra.xyz/desk/leaders.
TRADERS pill on the market screen
(/desk/traders) is a separate, older ranking with its own window and its own
win-rate column. /desk/leaders is the one with the five tabs, the podium and your own
row.12 · Alerts, the wallet sheet, and rap sheets
Three ways to keep watching something without having the tab open.
Alerts
Open the 🔔 on any token page, or the alerts section of your account. Three kinds:
PRICE
Fires when a token crosses a price you set.
LAUNCHES
Fires on every new pool on the chain that passes your filter.
WALLET
Fires on every buy and sell a wallet makes.
Price alert
Open the bell on the token
The token and its current price are filled in for you.
Set
Above,Below, or bothBoth are USD prices. Quick buttons give you
+100%and+50%for the upper bound,−25%and−50%for the lower. You must set at least one, or it refuses with Give it a price to watch for.Save
Alert saved. Without a wallet connected it saves on the device only: Alert saved on this device — connect to get it delivered.
Checked every 20 seconds against the market snapshot. Tokens that are not on the board are checked against an external price source instead.
Launch alert
Pick which verdicts you care about — SAFE, CAUTION, DANGER, with
safe and caution pre-selected — and a minimum liquidity, with quick buttons at $1K, $5K and $25K. Selecting
all three verdicts means "no verdict filter".
Wallet alert
Pick one of the wallets you already follow, or paste an address. Adding a wallet alert follows that wallet too.
Where alerts arrive
/link <code> as a direct message to the bot and you get 🔔 Alerts linked. back.
The code is 8 characters, valid 15 minutes, single use — and asking again while one is
still alive gives you the same code, so reloading the sheet never invalidates the one already
sitting in your Telegram draft. /unlink in the same chat removes it from every wallet paired
to it.The wallet sheet
Tap the wallet on any row of the tape. This is the rap sheet for one wallet on one token.
(TAPE) — they cover only what the page has loaded so
far.— when there is no cost basis.LIM marks a fill that came from a resting limit order.Three buttons: ONLY THIS WALLET ON THE TAPE (pins the tape to them — costs no request, since it is a view of what you already have), FOLLOW, and EXPLORER ↗. The full address is a copy button.
Rap sheets
Two different things wear that name, and they answer different questions.
The creator sheet
Tap the gold creator line on a token page. It shows how many tokens that wallet launched, how many are dead, how many are still alive, the death rate as a bar, when they were first seen and how they deploy. If they are a serial launcher it says so bluntly: This wallet launches tokens on a schedule and buries most of them. Treat anything it deploys as a countdown, not a position.
The RAP SHEET board
/desk/creators — every deployer on the chain ranked by what they have done. Tapping one opens their ticker trail: up to 14 of their tokens with each one's verdict and either alive or the cause of death. Covered in §2.
13 · Fees & economics
One fee, taken at one moment, at one rate. Everything else is the chain's price, not ours.
What The Desk charges
| Action | The Desk takes | When |
|---|---|---|
| Market buy or sell | 1 % · 0.9 % referred | At the moment of the swap, by the router. |
| Limit order fill | 1 % · 0.9 % referred | On the fill. Placing costs nothing. |
| Ladder rung fill | 1 % · 0.9 % referred | On each fill. |
| Martingale buy and take-profit sell | 1 % · 0.9 % referred | On each fill. |
| Any bot fill | 1 % · 0.9 % referred | On each fill. |
| Performance fee on any profit | 0 % | Never. We take nothing from what you make. |
| Placing a limit order | 0 | It is a signature, not a transaction. |
| Cancelling a limit order or ladder | 0 | No protocol fee — but it is an on-chain transaction, so you pay gas (~$0.001). |
| Depositing into a bot, ladder or martingale | 0 | Gas only. |
| Withdrawing from any of them | 0 | Gas only. |
| Adding funds to a grid | 1 % on the market-buy half | Because half of it is a swap. |
| Claiming a @name | 0 | Gas only, about a cent. |
| Predict — NLYRA pool | 3 % of the pool | Only on a round that settles with a winner. A draw or refund charges nothing. |
| Predict — Polymarket pool | 0 % builder fee | Attribution only. Read live from Polymarket; if it ever changes the ticket shows the exact amount first. |
What the chain and the pool charge
| Cost | Amount | Notes |
|---|---|---|
| Network gas | ≈ $0.007 per transaction | Blocks are about 100 ms. A bot withdrawal costs a fraction of a cent. |
| Pool fee | Set by the pool | Charged by the DEX, not by us. Already inside every quote you see. |
| Hook fee (some V4 pools) | typically 1–2 % extra per swap | See below. |
| Price impact | Depends on your size vs the pool | Shown in the quote line from 1 %; warned at 3 %; requires a second tap at 10 %. |
Minimums
| Where | Minimum |
|---|---|
| Market swap | None beyond what the pool accepts. |
| Limit order | 0.00085 ETH (≈ $2), or 1 USDG |
| Ladder, per rung | 0.00085 ETH (≈ $2) |
| Martingale base | 0.00085 ETH (≈ $2) |
| Any bot fill — grid level, DCA instalment, TWAP slice | 0.00085 ETH (≈ $2) |
| Adding funds to a grid | 0.0017 ETH |
| Predict — NLYRA pool | 0.0004 ETH (≈ $1) |
| Predict — Polymarket pool | 5 pUSD |
The referral share
30 % of every fee a referred trader pays goes to their referrer, and the other 70 % to the treasury. It is credited by the fee router itself, in the asset the fee was taken in, and claimable by the referrer at any time.
Hook-fee pools
Some V4 pools attach a "hook" — extra code that runs inside the swap and can keep part of the output. Measured on this chain, one such hook takes 2 % of every swap while its own published figure says 1 %.
est. rather than exact.The fee cannot move under you
- The 1 % ceiling is hard-coded in the page. Any transaction carrying a higher fee is refused before your wallet opens, whatever the server says.
- The router refuses anything below 0.9 % too, so nobody can use it for free at everyone else's expense.
- A bot's fee rate is written into its record when it is created. A later change to the default does not reach a bot that is already running.
- Limit orders carry their fee inside the signature. The rate you signed is the rate that gets charged.
14 · Security & self-custody
Three different custody shapes live on The Desk. Knowing which one you are in tells you exactly what could go wrong and exactly how you get your money back.
Where your money actually is
| What you did | Where the money sits | How you get it back |
|---|---|---|
| Market buy / sell | Your wallet. The swap is one atomic transaction: tokens in, tokens out, same block. | Nothing to get back — it either happened or it reverted. |
| Limit order | Your wallet. Nothing is escrowed; you signed a Permit2 witness that authorises exactly one transfer on exactly the terms you signed. | Let it expire, cancel it, or revoke the Permit2 allowance. There is no balance to rescue. |
| Ladder, Martingale, and the six bots | An escrow contract on Robinhood Chain, booked to your wallet address as the maker. | A maker-only withdrawal function that needs only your bot id. No keeper, no server, no route data, no expiry wait. |
| Predict stake | The Predict contract, until the round resolves. | claim([epoch,…]) — winnings, or a full refund if the round was cancelled. |
The withdrawal guarantee
Every escrow contract on The Desk exposes a function that does one thing: send everything in this record back to the wallet that owns it, right now, without selling anything. Four properties of that function are what the guarantee rests on, and all four were verified by direct on-chain calls on mainnet with no Desk API in the path:
- It needs only the bot id. No route bytes, no quote, no signature from us. Grids and
DCA take
route = 0xandminOut = 0because the route is only read inside thesellAllbranch — and you passsellAll = false. - It is maker-only. The contract compares
msg.senderagainst the maker address recorded when the bot was created. Nobody can change that address, including us. Anyone else calling it reverts withNotMaker. - Pause does not block it. None of the withdrawal functions carry
whenNotPaused. The pause switch stops the keeper's trading entries, nothing else. - Expiry does not block it, and expiry never forfeits anything. The withdrawal
functions do not look at the date at all. After expiry a second path opens:
refundExpired(id), callable by anybody — and it still pays the maker, never the caller. Someone else can push your funds home for you and cannot divert them.
What the operator can and cannot do
rescue(token, to), and it is arithmetically capped at
balanceOf(this) − escrowed[token] — the surplus above what users deposited. If that
surplus is zero it reverts with NothingToRefund. There is no path that dips into user
balances.transferOwnership →
acceptOwnership, with a zero-address check, so a fat-fingered transfer cannot orphan the
contract.What the keeper can and cannot do
The keeper is the off-chain process that executes your bots. It runs on its own key
(0x96D0B800…59246c) and it is not the owner of anything. Its
entire power is "call the execute function on a record that already exists". Everything about what that
execution is allowed to do is enforced by the contract:
- It cannot sell a grid level at a loss. The profitable spacing is checked on-chain per level; a keeper transaction that would breach it reverts.
- It cannot pick its own route on a limit order. The route is committed inside the
order you signed as
bytes32 routeHash, andexecute()reverts withBadRouteHashif the submitted route does not hash to it. Before this was added, a keeper could route your fill through a pool of its own and keep whatever landed above yourminAmountOut. It can't now. - It cannot beat your minimum. Every output is measured as the balance delta of
the destination and compared to
minAmountOut— not taken from what the pool claims to have returned. Fee-on-transfer tokens, rebasing tokens and hooks that skim part of the output are all caught by that check. - It cannot route you through an arbitrary V4 hook. A hook is attacker code running
inside the router's unlock with the deltas open, so
key.hooksmust beaddress(0)or explicitly allowlisted. - It cannot make the router free for itself. The router enforces
minFeeBps = 90and revertsFeeTooLow()below it, and the referrer comes from the on-chain first-touch record, not from a parameter the caller chooses. - It cannot take custody. It never holds your funds at any point.
Bounced ETH
Every contract forwards ETH with a 30,000-gas stipend. If your wallet is a smart-contract wallet with an
expensive receive(), the payment does not fail and the money is not lost — it is credited to
pendingEth[you]. Read it with pendingEth(<your address>) and collect it
with withdrawEth() (no arguments) on the same contract.
Honest limits
- The contracts have not been audited by a third party. They are verified and readable on Blockscout, and every withdrawal path in the rescue guide has been tested with real money on mainnet, but "no bug found" is never "no bug".
- None of this protects the value of your position. A grid that bought all the way down hands you back exactly that: a losing position. Self-custody is a guarantee about access, not about price.
- A hostile token can still hurt you. Transfer taxes, blacklists and mint switches live in the token contract, which The Desk does not control. The SAFE verdict on the token page flags what is detectable; it is a filter, not a promise.
- Your keys are final. The maker address is permanent. Lose the wallet, lose the bot — there is no recovery path and we cannot build one.
15 · FAQ & troubleshooting
The things that actually go wrong, and what each one means.
Wallet and network
The connect button does nothing on my phone.
You are almost certainly in Safari or Chrome. A wallet app's keys are not reachable from the phone's normal browser, so there is nothing for the page to connect to. Open nlyra.xyz inside your wallet app's own browser — every major wallet has one — and connect from there.
The same applies to the block explorer's write forms if you ever use the self-withdrawal path: open the link inside the wallet app.
"No wallet detected."
The Desk uses injected wallets only — MetaMask, Rabby, or a wallet app's built-in browser. There is no WalletConnect and no e-mail login. Install one, or open the site inside your wallet app.
"Switch your wallet to Robinhood Chain."
Your wallet is on another network. The Desk offers to switch, and to add the network if you do not have it. If your wallet refuses the automatic switch, add it manually with the settings in §1 — chain id 4663.
Everything re-checks the chain before building a transaction, so a wrong-network transaction can never be signed by accident.
I have ETH but The Desk says I have none.
Your ETH is on a different chain. ETH on Ethereum, Arbitrum or Base is not ETH on Robinhood Chain — it has to be bridged. See §1. This is the single most common thing that stops a new user.
What is the "refused:" message?
A safety check caught a mismatch between the transaction the server built and what is on your screen, before your wallet was opened. Nothing was signed and nothing was spent. It checks the destination contract, the chain, the tokens, the amounts, the minimum output, the fee and the referrer — against the raw calldata, not against the server's description of it.
Re-quote and try again. If it persists, something is genuinely wrong and you should not push through it.
Trading
My transaction reverted. Did I lose the money?
No. A reverted transaction does nothing at all — it is as if it never happened, except that you paid the gas. The usual cause is the price moving past your slippage between pressing the button and the block landing: Reverted — the price moved past your slippage. Nothing was taken.
Try again, or raise slippage a step. On a fast-moving token 3 % is often not enough.
"The price moved. Check the new number and tap again."
The fresh quote differs from the one you were shown by more than 3 %, so the trade was stopped before it reached your wallet and the panel repainted with the real number. This is a feature: you are never asked to sign a trade whose terms changed after you decided.
The button turned red and says BUY ANYWAY.
One of two things. Either your order moves the pool by 10 % or more — in which case the trade needs a second press, and the arming lapses after six seconds — or the token carries a DANGER verdict with a deployer who has buried tokens before.
Both are worth stopping for. The impact one is fixable by trading less; the other is not.
Why did I get so much less than the price suggested?
Three possible reasons, in order of likelihood:
- Price impact. Your own order moved the pool. The quote line shows this from 1 %
upward, and the
@ pricefigure is the effective price at your size, not the headline one. - A hook pool. Some V4 pools take an extra 1–2 % on every swap. It is measured and already subtracted from the quote, so the quote was right — the pool is just expensive. See §13.
- A transfer tax in the token itself. The SECURITY card on the INFO tab shows buy and sell tax when they are detectable.
The price on a token that is not on the board looks wrong.
Prices for tokens that are not on the market board come from a different path and can be thinner or slower. On this chain most V4 pools quote in native ether, and the ETH price itself has to be sourced separately — when that lookup fails, an off-board token can briefly price at zero rather than at a wrong number.
If a figure looks impossible, check the pool on the INFO tab, look at the actual fills in the TRADES tab, and trust those over any derived figure.
Is "cancel free" really free?
There is no protocol fee, but cancelling a limit order or a ladder is a real on-chain transaction and you pay gas for it — around $0.001. It has to be on-chain: your signature already exists, and only the chain can void it.
My limit order never filled even though the price hit it.
What is enforced is the minimum output you signed, not the price you typed. If liquidity thinned out, the pool can print your price without being able to actually pay your minimum for your size.
Other possibilities: the order expired; your balance or your Permit2 approval changed after placing it;
or the keeper was down. Check the status on the order row — a FAILED row carries the
reason.
Bots
"Not profitable — not created." Why won't it let me?
Because the configuration cannot make money. A grid pays the 1 % fee on both legs plus the pool fee twice, so levels closer together than about 2.5 % net are guaranteed to lose. The rejection names your exact number and the maximum grid count for your range.
Widen the range, use fewer grids, or pick a pool with a lower fee. The contract enforces the same floor independently, so this is not a setting we can waive.
My grid is "Out of range" and has stopped trading.
The price has left the range you set. Above it, everything was sold and the bot is sitting in ETH, missing the move. Below it, everything was bought and you are holding the token at a loss.
Neither state loses your money by itself — you can stop the bot at any moment and take back either the ETH or the tokens. What you have lost is the opportunity. If you expect the price to come back, waiting is reasonable; if you do not, stop it.
Infinity Grid has no upper bound and only stops at your floor, which is why it is the better choice when you have no view on the top of the range.
My stop loss did not fire.
Stop losses are executed by the keeper, not triggered by the contract on its own. If the keeper was down, nothing fired. The hub shows a keeper offline tag when that is the case.
Your funds are safe and withdrawable regardless — but the protection was not there. This is the honest limitation of every automated exit on the platform. If the keeper is down and you were relying on a stop, withdraw and manage it by hand.
Can I change a bot's parameters after starting it?
Mostly no. You can add funds to a v3 grid, and you can change the stop loss on an Infinity Grid or a DCA. Everything else — the range, the grid count, the step, the take-profit — is fixed at creation, and Spot Grid's stop loss cannot be changed at all because the contract has no setter for it.
To run different parameters, stop the bot and open a new one.
Smart Rebalance says "Soon". When?
No date. It is a placeholder — there is no contract and no engine behind it yet. It is visible in the product, which is why it is documented, but it does nothing.
If I copy someone's bot, can they touch my money?
No. A copy runs in your own escrow, from your own wallet, and only your wallet can withdraw it. What the creator gets is the referral: you pay 0.9 % instead of 1 %, and they earn 30 % of that fee.
The strategy's parameters are hidden in the interface. They are, necessarily, inside the transaction you sign — so "hidden" means hidden in the product, not cryptographically secret.
Predict
My round says CANCELLED. Did I lose the bet?
No — a cancelled round refunds every stake in full and the house takes nothing. Use the same CLAIM button. Rounds are cancelled when they cannot be settled honestly: a stale oracle, an oracle that did not advance, or a missed lock or close window.
Past the close time plus the buffer, the contract makes your stake refundable by itself — no keeper and no human at The Desk is needed for you to get it back.
The multiplier changed between betting and settling.
That is how a parimutuel pool works: you split the losing side's stake, so the payout moves every time anyone bets, and it is only final at lock. A card showing 8× is telling you that almost nobody is on your side yet.
The big price on screen is not the price it settled at.
Correct, and deliberate. The line and the ticker come from an exchange socket in your own browser — fast, for reading. Settlement uses the on-chain oracle, which publishes once per round and is bounded by Chainlink: a price more than 10 % from Chainlink's own answer cannot be published at all. The header chip names both sources and turns amber if they drift.
Polymarket refused my order.
If it mentions your region, Polymarket geoblocks it — that is their restriction applied to your IP, and the order goes direct from your browser, so it is your location that counts. The NLYRA pool still works.
Otherwise, check that you hold pUSD on Polygon (not USDC.e, not ETH), that both approvals are set, and that the order is at least 5 pUSD. The page tells you which step is missing.
The screen
The trade panel keeps folding itself on my iPhone.
On a phone the panel docks at the bottom of the token page and collapses to a summary bar when it is scrolled away, so the chart keeps the fold. On a short screen — a small phone, or landscape — it stops pinning entirely rather than covering the whole page.
Tap the bar to bring it back up. Turning the phone to landscape gives the chart the full screen; the banner and socials row hide themselves to make room.
Numbers show "—" instead of a value.
An em dash always means "we do not know", never zero. It is used deliberately: a holder count of 0, a PnL with no cost basis, a change window with no data, a buy-pressure figure with no flow. Printing a zero would be a claim we cannot support.
PnL specifically shows — when the token arrived by airdrop or transfer, or from a fill the
index never saw — there is no honest average cost to compare against.
The live dot on the tape is amber.
The push socket is down and the page has fallen back to polling. Everything still works, just a little behind. It reconnects on its own, and every screen keeps a polling fallback underneath precisely so the socket is never the only way something updates.
The board stopped updating while I was scrolling.
On purpose. Once you have scrolled past the top, rows stop reordering under your finger — prices keep updating in place, and a pill appears saying N new tokens. Tap it, or scroll back to the top, to let the new ordering in.
My trade does not show in MY BAG.
Give it a few seconds — the wallet read is cached for 30 seconds and refreshed shortly after a confirmed trade.
If it still does not appear, check the dust filter: positions under $0.50 are hidden by default, with a show dust button in the totals strip.
Martingale positions never appear in MY BAG — those tokens are in the escrow contract, not your wallet. The cycle card carries their cost basis instead.
Money and safety
Can The Desk take my money?
Market and limit orders never place your money anywhere we could reach. For the escrowed strategies, the only administrative money function on the contracts is arithmetically capped at the surplus above what users deposited and reverts if it would touch a user balance. Withdrawals pay the address recorded at creation, which has no setter. The contracts have no upgrade mechanism, so none of that can be changed later.
You do not have to take our word for it: the contracts are verified and readable on the block explorer. See §14 and /desk/help/bots.
What if The Desk disappears?
Unfilled limit orders simply never fill — nothing to recover. Escrowed strategies are withdrawn directly from the contract with your wallet, your bot id and a block explorer, needing no server of ours. Predict stakes on unsettled rounds become refundable by the contract on their own.
The full procedure lives at /desk/help/bots. It is one self-contained file — save it to your device now, while everything is fine.
Is SAFE a guarantee?
No. SAFE means the contract was read and nothing was found that lets the creator take your money. It says nothing about whether the token holds its value, and on this chain there is no sell simulation available — honeypot detection rests on a source-code read alone.
Most tokens on any chain go to zero on their own, without anyone doing anything wrong.
Why is a token I know is fine marked CAUTION?
Robinhood Chain is younger than the age threshold the scanner uses for "established assets", so nothing here can clear that gate — the canonical WETH reads as an upgradeable proxy with unlocked liquidity. That is what the BLUE CHIP tier exists to fix, and it is triggered by the deployer rather than a list of tickers. See §3.
Do you have my keys, my e-mail, or my identity?
None of the three. There is no sign-up. Your identity here is either a @name you claimed on-chain or a truncated address, avatars are generated from the address, and the only thing stored against your wallet is your own preference list — watchlist, follows and alerts — which is written with your signature so nobody else can change it.
That is the whole product
Nothing above is aspirational. Every number, threshold and message on this page was taken from the code that is running.
If something here does not match what you see on screen, the screen is right and this page is out of date — tell us. If something here is a limitation you did not know about, that is exactly why it is written down.