Skip to content

How it works

many intents, one execution.

NoFomo turns a crowd of agents racing for the same trade into one onchain execution at one price. Here is every step, and what can and can't happen at each.

00

the race

When many agents see the same signal, they all try to buy the same thing at the same moment. Each buy moves the price for the next. Whoever lands first gets the best price and whoever lands last gets the worst, and landing first is a contest of latency, gas bidding and, on public mempools, being front-run.

None of that is the agents’ strategy. It’s noise the market adds because they all arrived separately. NoFomo removes the ordering: compatible intents arrive together, execute once and share one price.

Racing, in one line

  1. agent A buys → price moves
  2. agent B buys higher → moves
  3. agent C buys higher still
  4. …
  5. agent N pays the most

01

intent

An intent is a simple instruction: buy this market with this much ETH, and don’t move the price more than this. Onchain, it is a join on a cluster: the ETH goes into escrow in the BlockClearing contract, tagged to your wallet.

If no cluster is forming on that market, the first agent opens one and joins in the same transaction, choosing the window length (10 seconds to 1 hour) and the impact ceiling (0.1% to 20%). Agents usually do this through the MCP server with submit_intent, which picks join or open for you.

02

cluster

A cluster is one clearing block on one market. While its window is open, anyone can join, add more, or leave and take back everything they put in. Nothing has traded yet, so joining doesn’t move the price and there is no queue to jump.

FORMING

Window open

  • Join with more ETH
  • Leave and take back all of it
  • Open more clusters on other markets

CLEARABLE

Window closed, not cleared yet

  • Anyone clears it (just gas)
  • No joins, no leaves

CLEARED

One venue buy done

  • Claim tokens at the uniform price
  • Claim any unfilled ETH

03

one execution

When the window closes, anyone can call clear. It is permissionless: the app does it, your agent can do it, and nothing depends on us being online. The contract then:

  1. asks the venue how much ETH it can absorb without moving the price past the ceiling;
  2. admits all the escrow if it fits, or the same fraction of everyone’s escrow if it doesn’t;
  3. takes the 10 bps protocol fee from the admitted amount;
  4. makes one buy on the venue for everyone.

If the market can no longer be quoted by then (for example, a bonding curve that graduated in the meantime), the cluster settles at zero and everyone claims their ETH back.

VENUE1 TX · 1 PRICE

04

allocation

Every participant claims their share of the tokens, pro rata to what they put in:

tokens[i] = tokensOut × joined[i] / totalJoined
refund[i] = joined[i] × (1 − fillRatio)

Because everyone’s tokens-per-ETH ratio is identical, everyone paid the same price. That is the uniform price shown on every cleared cluster. When demand was larger than the ceiling allowed, fillRatio is below 1 and the unfilled part comes back as ETH in the same claim.

05

what batching does, and doesn’t, change

Against a constant-product curve, buying the same total in one go or in pieces costs the same in total. So we don’t claim savings. What changes is distribution, predictability and the number of transactions.

Racing, one by onePrice paid, by arrival order
+2.0%+4.0%+6.0%+8.0%1+0.5%2345678+7.6%
Clearing togetherOne uniform price
+2.0%+4.0%+6.0%+8.0%12345678+4.0% for every agent

IllustrationEight equal buys that together equal 4% of a constant-product pool’s quote reserve. The dashed line is the average price per token, and it is identical in both panels: the total cost of the same demand doesn’t depend on the order it arrives in.

06

mandates

Some people want an agent to trade for them without giving it their wallet. A mandate in the MandateVault contract does that: you deposit ETH and name one agent (the originator) that may deploy it in coordinated executions, inside limits the contract checks every time.

The agent never holds your ETH. It can only move it into an execution, where you receive tokens at the same uniform price as everyone else in it. You can top up, and you can revoke at any moment: revoking returns the whole balance to you in one transaction.

allocator
deposits ETH, sets limits
originator
the agent allowed to execute
perExecEth
max per execution
dailyCapEth
max per rolling day
ceilingBps
max impact accepted
expiry
end of authority

07

where it runs

NoFomo runs on Robinhood Chain (chain id 4663). It clears two kinds of market through one venue router: Robinhood Stock Tokens on their onchain pools, and Pons V2 bonding curves. An earlier deployment cleared against Pons V3 pools and stays readable for history. Stock Tokens are not offered to US Persons or in restricted jurisdictions.

NoFomo is independent. It is not affiliated with FOMO Labs Inc., Pons, Robinhood or the Stock Token issuer; it uses public contracts on a public chain.

UnauditedInternal review only. Read thesecurity pagebefore committing meaningful amounts.

ready when your agents are.

Cookie settings

Choose what we may store on this device. You can change this at any time from the footer.

  • Strictly necessary

    Needed for the site to work and to remember your choices here, and to keep a wallet connection you started. These can't be switched off.

  • Preferences

    Remember interface choices such as dismissed hints and layout settings. We don't set any preference storage today; this switch covers it if we add some.

  • Analytics

    Aggregate, privacy-respecting measurement of how pages are used, so we can improve them. No analytics run today, and none will run unless you allow them here.

Full list of every cookie and storage key: cookie policy.