How it works
A token launchpad on Robinhood Chain that gives creator trading fees a job: they become money on a card you can spend in the real world.
- Launch. Your coin deploys onchain. At launch you name the cardholder. That name is locked permanently, enforced by a database trigger, not just the interface — nobody can later point your coin's fees at someone else's card.
- Trade. People buy and sell your coin. Creator fees accrue in ETH in a fee wallet derived for your coin alone, so the balance is yours by construction.
- Sweep. Every 15 minutes the executor claims those fees, swaps them to USDG on Uniswap, and settles the USDG to the card treasury. Below the minimum sweep it skips, so gas never eats the fee.
- Issue, then top up. The first sweep whose settled amount clears the issue minimum creates the card. Every later sweep tops the same card up. A coin that never trades never costs an issuing fee.
- Spend. Use the card anywhere the issuer's network is accepted. Authorisations are pulled back within a minute and published next to the fees that paid for them.
- Receipt. Every run publishes what it claimed, what it settled, what it loaded, the balance after and every transaction hash. Public for every coin.
- Dashboard. From your launch wallet you can reveal the card number, freeze it, or close it. You cannot change the cardholder.
Where the money is at each step
| on the curve | creator fees accruing in ETH, not yet claimable |
| fee wallet | claimed ETH, for your coin only, forwarded to the ops wallet in the same run |
| ops wallet | in-flight only: it claims, swaps and settles in one sweep and is designed never to hold a balance between runs |
| card treasury | settled USDG. The amount attributed to your coin but not yet loaded is shown as waiting on your coin page |
| the card | spendable balance at the issuer |
Guardrails and risk
- The cardholder is locked at launch by a database trigger, checked on every update.
- A minimum load, a per-sweep cap and a lifetime cap per card. Anything a cap holds back is kept as waiting and loaded by a later sweep — never dropped.
- The executor never calls a load the issuer account cannot cover. If the float runs out, the money waits and a receipt says so.
- A frozen card still collects fees; they are held and loaded once it is active again. A closed card stops receiving loads entirely.
- The operations wallet holds funds only while a sweep is in flight. A kill switch pauses all sweeps without losing state, and unfinished sweeps resume where they stopped.
- Swipe is not a bank. Cards are issued and balances held by a third-party issuer under its own terms, and acceptance is up to the merchant. A card is funded only by the fees your coin actually earns; no amount and no return is promised.
What is public and what is not
Public pages show the cardholder name, the last four digits, amounts loaded and spent, and merchant names. They never show the card number, expiry, CVV, your email or your date of birth.
The card number is returned by one route, POST /dev/card, only to a live signature from the launch wallet. It is sent with no-store, is never written to the database and never appears in a log or a receipt.
Security: what this site asks your wallet
Swipe never asks for token approvals, permits, spend allowances or setApprovalForAll. There is no hidden transaction. The complete list of wallet requests the site can make:
| eth_requestAccounts | connect, only when you click Connect wallet |
| wallet_switchEthereumChain | switch to Robinhood Chain (4663) |
| personal_sign | sign a plain text message starting with swipe to prove you own the launch wallet. Signing costs nothing and moves nothing. |
| eth_sendTransaction | only if you enter a dev-buy amount on the launch page: sends the ETH you typed to your coin's bonding curve, to buy your own coin. Nothing else, ever. |
| wallet_revokePermissions | when you click Disconnect |
Public API
| GET /tokens | all coins with their card state |
| GET /tokens/:id | one coin: card, fees, schedule, spending and balance snapshots |
| GET /spend/:token | real-world card transactions for a coin |
| GET /receipts/:token | receipts for a coin, newest first |
| GET /leaderboard | coins ranked by spending power delivered |
| GET /api/health | halted state, minimums, totals across all cards |
| POST /launch | launch a coin with a locked cardholder |
| POST /dev/:action | coins · status · sweeps · spend · card · freeze · unfreeze · terminate, signed by the launch wallet |
Unauthenticated reads are cached for 30 seconds; /dev/* is never cached. Chain: Robinhood Chain (4663). Settlement asset: USDG. Card currency: USD.
Security contact: @SwipeDotFun.