TL;DR: the engine is deployed and verified, the app quotes and runs against it, the coin is live, and the first cycles have already settled. Day two is about making the gaps close without anyone watching.
What Day One Built
The work started with a question that needed an answer before any code was worth writing: how many stocks on Robinhood Chain actually trade in more than one pool. A scan of the chain's stock tokens found 49 of them across 136 Uniswap v3 pools, split by fee tier and by whether the pool quotes in USDG or WETH. That set is the universe the whole product points at.
The engine is one contract, ArbiStocks.sol, with no proxy and no upgrade path. It flash-swaps the start amount out of the first pool, runs two to four hops, repays that pool from the proceeds, and splits what is left: 90% to the caller, 10% to the treasury, a share of profit and never of size. A cycle that does not end in profit reverts, so a caller who is wrong pays gas and nothing else.
Around it went the site: the scanner and quote panel at the app, a wider view of the board at the oracle, the reference at the docs, and the review notes at security.
The Deploy
Before anything was signed, the contract went through its tests: 58 of them, including invariant runs that fire thousands of random cycles at the engine and check it never keeps a balance. The site's own gates ran too, the app end to end against a local fork of the chain, where a cycle was pushed open with a large swap and then closed for real.
The deploy itself was one transaction. The engine came up on Robinhood Chain, verified on Sourcify, its runtime byte for byte the same code the site had been quoting with all along. Two checks mattered more than the receipt: the deployed code hashes to what was reviewed, and a quote through the live engine returned the same numbers the preview had.
Then the coin went live, and its buy link and Copy CA took their place in the top bar, where they are the only addresses the site ever shows.
The First Cycles
Five cycles have settled on the live engine so far. Each one did what it should: borrow, hop, repay, split, and leave nothing behind. The engine's balance after all of them is zero, which is the number to watch. It is not supposed to hold anything, ever.
The board has been quiet since. Most of the time it is: gaps open when somebody pushes size through one fee tier and not the others, and they close when the arithmetic clears the gas. An idle hour is the system being honest, not the system being broken.
What Went Wrong
Two things worth writing down, since a devlog that only lists wins is an advert.
The first was our own copy. The site was written before the engine existed, so pages still said the engine deploys soon and the coin had not launched. The browser rewrote those from config, so a visitor saw the truth, but the markup underneath did not change, and that is what crawlers and answer engines read. Someone quoted it publicly as evidence the project was fake, and they were quoting us. Every one of those lines is corrected now, and a check fails the build if they ever drift from the deployed address again.
The second was a test that could not tell a slow network from a broken product. The fork the app tests against pins a block, and this chain only keeps recent state, so when the public node slowed down the fork outlived its own block and every read failed. The tests reported it as the app falling back to a snapshot. Pulling the state faster fixed it, and the failure now says what it is.
Day 2
Day one made the gap closeable by hand. Day two is about closing it without a hand.
- A keeper that watches. Nothing here fires by itself yet. The next piece is a loop that watches all 136 pools and sends a cycle the moment the quote clears the gas, with a size the engine itself chose.
- Reasons, not just numbers. A spread is a number; what opened it is the useful part. Tagging each gap with its cause, one tier absorbing size, a quote asset moving, a single large trade, makes it possible to tell a gap that will persist from one that closes on the next block.
- A feed worth subscribing to. The board as a stream rather than a page, so something automated can wake on a gap instead of polling for one.
- More eyes on the engine. The tests and the review notes are public; the next round is outside review of the same contract, with the findings published either way.
- Keeping the story straight. The copy check that shipped today runs on every deploy from now on. Anything the site claims should be something the chain can be asked to confirm.
Nuance
- No profit figures appear in this note on purpose. What a cycle pays depends on the gap and the gas at that moment, and yesterday's number predicts nothing.
- The 49 stocks and 136 pools come from the scan; the app reads the same pools live and a few can drop below the depth floor at any time.
- Day two is a plan, not a promise. What ships will be listed here when it does.