How it works.
Overview
Cashed is a fee bridge on Robinhood Chain. A coin launched on pons v2 names an X, TikTok or YouTube handle. The coin's creator fees flow into a contract that keeps 80% for that handle and spends 20% buying and burning $CASHED. Whoever owns the handle proves it once and takes the balance to any wallet.
The person named is not asked to do anything first. There is no account, no wallet requirement and no expiry. Control sits with them: a balance moves only to a wallet the verifier has attested for that handle, and a handle that does not want to be named can ask to be taken off the site.
Everything that moves money is a contract. The one piece that is not is the verifier, a small service that reads a public bio and signs a message saying "this wallet has proved this handle". It never holds funds.
Launching
A launch is one transaction on the Cashed contract. It deploys a sink, a tiny contract that exists for this coin alone, then calls pons' factory with the sink as the coin's creatorFeeRecipient and buybacks switched off. pons mints the whole supply to a bonding curve, and the coin trades from the next block.
You pay pons' launch fee and gas. Cashed adds nothing and the launcher receives no allocation. If you want a position, set an opening buy and it is bought for your wallet in the same transaction, exempt from pons' opening snipe tax.
The creator tax is yours to set, from 0% to 10%. It is charged on every trade on top of pons' 1% fee, cannot be raised later, and reaches the sink whole.
Why a sink per coin: pons credits fees to an escrow keyed by recipient, not by coin. One shared recipient would receive one commingled balance for every coin with no way to say which handle earned what. A sink per coin is what makes "owed to this handle" a fact the chain can state.
The handle
Handles are stored lower case, without the @, and the contract keys the balance on keccak256(platform ":" handle). One account, one balance, however many coins are launched for it.
The coin's description on pons carries the line Fees to @handle via Cashed. The page adds it if you leave it out. The contract does not read the description; the handle it pays is the one given at launch, and the line is there so anyone reading the coin on pons sees who it is for.
Handles can be renamed and picked up by someone else. The contract cannot know this, so the verifier is responsible for refusing an attestation for a handle whose underlying account has changed since the first coin was launched for it.
The split
- To the handle
- 80% of every deposit, credited to the handle's balance
- To the burn
- 20%, into a reserve anyone can spend on $CASHED
- Applied
- per deposit, in the same transaction, from constants
- Cashed's fee
- none. There is no address in the contract that receives a cut
- The one exception
- $CASHED itself. Its creator fees go to the burn in full
Before a fee reaches the sink, pons keeps 30% of its 1% trading fee. The creator tax passes through whole. So on a 1 ETH buy with a 1% tax, 0.017 ETH reaches the sink, 0.0136 ETH is owed to the handle and 0.0034 ETH goes to the burn.
Pushing fees
A trade does not credit anyone directly. Before graduation the fee accrues on the coin's curve; after graduation it accrues on pons' hook. From there a sweep moves it to pons' escrow, and a claim moves it from the escrow to the sink. The sink then deposits it into Cashed, where the split happens.
All of that is one call, collect() on the sink, and anyone can make it. Each step tolerates having nothing to do, so a stale caller wastes gas and nothing else. The coin page has a button for it, and a keeper can run it on a schedule.
An escrow balance of zero does not mean a coin has earned nothing. The coin page shows what is waiting on the curve and in the escrow separately from what has been pushed.
Claiming
Look the handle up on the claim page. Connect the wallet you want paid; the page mints a code of the form CASH-XXXXXX that is an HMAC over the platform, the handle and that wallet, so it is bound to all three and stores nothing. Put it in your bio. The verifier reads the public profile, finds the code, and signs an EIP-712 Claim(key, to, nonce, deadline).
The contract checks the signature against the verifier's address, pays the whole balance to to, and bumps the nonce so the attestation is good for exactly one claim. The code can come out of your bio afterwards; a later claim needs a new one.
Where a platform has an OAuth app configured, signing in with the platform does the same job. YouTube channel descriptions and TikTok bios are read from the public page; X bios are read through the X API.
Adopting a pons coin
A coin that already exists on pons can join. adopt(token, platform, handle) records the coin and deploys a sink for it; anyone can call it. Then the coin's current fee recipient calls transferCreatorFeeRecipient(token, sink) on pons' factory. That call is only accepted from the current recipient, so once the sink holds the role the launcher cannot take it back.
Fees credited to the old recipient before the handover stay theirs; claim them from pons' escrow first, because the handover does not move them. A coin launched with buybacks on relies on pons' own sweep operator for the sweep step; the sink still claims and forwards whatever is swept.
Only ETH-quoted coins are accepted. A coin quoted in another token pays its fees in that token, which the split does not handle.
$CASHED and the burn
$CASHED is a pons coin launched through Cashed like any other, and named as the protocol coin once. The burn reserve is spent on it with buyAndBurn(amount, minTokensOut), which anyone can call: while $CASHED is on its curve the reserve buys from the curve, and after graduation it swaps through the Uniswap v4 pool. Either way the tokens go to 0x…dEaD and the event says how much was spent and how much was destroyed.
Holding $CASHED gates nothing. It does not change the split, who can launch, or who gets paid. Until the protocol coin is set the reserve simply accrues; the home page says which state it is in.
Not wanting it
Being named does not make you a customer of anything and does not oblige you to do anything. If you would rather your handle were not on the site, say so from the handle to @cashed on X and it comes off the pages. The contract cannot delete a balance, so whatever is owed to the handle stays owed to it; it just stops being shown here.
Money you claim may be taxable where you live. Nothing here is tax advice, and Cashed issues no documents.
What can go wrong
- A pons takeover
- pons can move any coin's fee recipient after a public three-day timelock. Nothing a recipient contract does can prevent it. The coin page shows whether fees are still routing to the sink.
- The verifier key
- If it leaks, future claims could be misdirected until the owner rotates it. It cannot touch a balance without a claim, and the owner cannot claim.
- A renamed handle
- The contract keys on text. Refusing a second account for the same handle is the verifier's job, and it depends on a store of first-seen account ids.
- An unclaimed balance
- Sits in the contract indefinitely. Nobody can sweep it.
- The curve's price
- Quotes on the coin page are the curve's own arithmetic on its reserves and can move before a transaction lands. The 1% slippage floor is what protects you.
- Audits
- None. The contract is small and tested, and the code is public. Treat it as new software.
Contracts
- Cashed
- 0x93A0aFe48907eFDf7efE71a2a445FB15189b4256
- Chain
- Robinhood Chain, id 4663
- Deployed
- block 67,319,953, 19 September 2026
- pons factory
- 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
- pons fee escrow
- 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e
- pons meme hook
- 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044
- Uniswap v4 PoolManager
- 0x8366a39CC670B4001A1121B8F6A443A643e40951
- Verifier
- 0x510597d4705F37089af4330fC287c4e05D3CD020
- Claim domain
- EIP-712, name "Cashed", version "1",
Claim(bytes32 key,address to,uint256 nonce,uint256 deadline)
Reads that matter: owed(bytes32) and earned(bytes32) for a handle, launches(uint256) and page(uint256,uint256) for coins, pending(uint256) for what a coin has earned and not pushed, routed(uint256) for whether pons still pays the sink, and the Credited, Claimed and Burned events for the ledger.