Skip to content
TonStock

Robinhood Chain · chain 4663/Tokenized-stock pool observatory

Find the spread.
Close the orbit.

Explore price differences across tokenized-stock pools, simulate a route, and execute supported arbitrage cycles in one transaction.

Scanning and simulation are live on mainnet data. On-chain execution is not enabled: the executor contract has not been deployed to a public network.

POOL A0.05 %POOL B0.30 %POOL CV2POOL D1.00 %POOL E0.30 %
  1. 01 Borrow
  2. 02 Swap
  3. 03 Repay
  4. 04 Settle

Illustration · symbolic pools

01 — Markets, read from the chain

The same stock, priced in several places at once.

A tokenized stock can trade against USDG and against WETH, in several fee tiers, on V2 and V3. Each pool keeps its own price. TonStock reads all of them at one block and shows where they disagree.

Stock Tokens in registry

issuer registry, beacon-verified

Stocks with a live pool

active liquidity at this block

Canonical pools found

— V3 · — V2

Depth-verified pools

— flagged hollow

Indicative on-chain pool prices. Raw spread is the gap between the cheapest and dearest verified pool — it is not profit.

02 — Orbit Engine

Four stages. One transaction.

  1. POOL APOOL BPOOL CPOOL DPOOL E01 / DISCOVER

    01

    Discover

    Every pool is asked for by name: the canonical Uniswap V2 and V3 factories are queried for each verified Stock Token against USDG and WETH, across every enabled fee tier. Pools between two stocks come from factory events and are re-checked against the factory. Hollow pools — depth on paper, nothing behind it — are probed with the real quoter and set aside.

    factory.getPool · factory.getPair · PoolCreated

  2. POOL APOOL BPOOL CPOOL DPOOL E02 / SIMULATE

    02

    Simulate

    Prices are read at a single block, normalised to one quote currency, and cycles of two to four distinct pools are ranked by raw spread. The best candidates go to the on-chain quoter, which runs the actual swap math through initialized ticks. What comes back already includes pool fees and price impact.

    one block · QuoterV2 · 2–4 hops

  3. POOL APOOL BPOOL CPOOL DPOOL E03 / EXECUTE

    03

    Execute

    The first pool hands over its output before it is paid. Inside that callback the remaining swaps run with exactly what was received, and the first pool is repaid to the unit. You supply no tokens and sign no allowance — only gas. If any step falls short, the whole transaction reverts.

    flash swap · authenticated callbacks · atomic

  4. POOL APOOL BPOOL CPOOL DPOOL E04 / SETTLE

    04

    Settle

    Profit is whatever the settlement-token balance actually grew by — never a figure a pool reported. The protocol share of positive profit is split off, your minimum is enforced after that share, and the rest is sent to the address that signed. The receipt and its event are the record.

    balance delta · min profit · CycleExecuted

03 — Mechanics

A loop that pays for itself, or does not happen.

A cycle starts and ends in one settlement token — USDG or WETH. The first pool lends its output, the middle pools convert it, the last swap returns to the settlement token, and the first pool is repaid exactly what it is owed. The difference is the profit. If there is no difference, there is no transaction: the whole call reverts.

A
Raw price spread
Gap between spot prices of two pools. A signal, never a result — it ignores price impact.
B
Simulated cycle profit
Quoter output for one amount through specific pools, minus the amount borrowed. Pool fees and price impact are already inside it.
C
Estimated net result
Cycle profit minus the protocol share and the estimated gas, valued in the settlement token. If gas cannot be valued, no route is called net-positive.
cycle.flash — three-pool example
ONETRANSACTION01Borrow02Swap03Swap04Repay · Settle
  1. 01Pool A releases STOCK before it is paid
  2. 02Pool B turns STOCK into WETH
  3. 03Pool C turns WETH into USDG
  4. 04Pool A is repaid; the rest is profit

Illustration of a route shape. Real routes, amounts and results are in the app.

04 — Costs, stated once

You pay gas. The protocol takes a share of profit, and only of profit.

Protocol fee

10%

of positive cycle profit

Fixed in the contract at deployment and capped at 10% by an immutable constant. Never charged on trade size. A cycle that reverts pays no protocol fee. The app always shows the value read from the deployed contract; until one is deployed it shows this proposed value, labelled as such.

Pool fees

0.01–1%

per hop, set by each pool

Every Uniswap pool keeps its own fee from the swap. Quoter outputs already have them taken out, so they are never subtracted a second time in any figure you see.

Gas

ETH

paid by the sender

Estimated from the actual call before you sign and converted to the settlement token through the deepest WETH/USDG pool at the same block. Your on-chain minimum-profit threshold cannot see gas, so set it above the estimate. A reverted transaction still costs gas.

05 — Token

One address, published once, read from the chain.

Token

$TONSTOCK

Contract address · Robinhood Chain▲ Soon
CA:

The contract address has not been announced. Any address you see elsewhere claiming to be $TONSTOCK is not from this project. When it is published it will appear here and on X at the same time.

Read from the chain

Name
Symbol
Decimals
Total supply
Uniswap V2 / V3 pools

Nothing is shown until there is a contract to read. No supply schedule, utility or price statement is made about $TONSTOCK on this site.

@tonstockrh

06 — Questions

Plain answers.

The longer versions live in the documentation.

Is TonStock on the TON blockchain?

No. TonStock is a brand name. The product reads and (where an executor is deployed) transacts on Robinhood Chain, an EVM network with chain id 4663. It has no connection to TON.

Does TonStock guarantee a profit?

No. A simulation is an estimate made at one block. Blocks arrive roughly ten times a second, other traders see the same pools, and a route that qualified a moment ago may not qualify at inclusion. A cycle that no longer pays reverts — you keep your principal because you never supplied any, but you still pay gas for the reverted transaction.

What is the difference between spread, cycle profit and net result?

Raw spread is the gap between two spot prices; it ignores price impact and cannot be traded at size. Simulated cycle profit is what the on-chain quoter returns for a specific amount through specific pools, with pool fees and price impact already inside. Estimated net result subtracts the protocol share and the estimated gas cost. Only the last one tells you whether a route is worth sending.

Do I need to deposit or approve tokens?

No. A cycle is funded by a flash swap: the first pool releases its output before it is paid and is repaid inside the same transaction. You connect a wallet, pay gas in ETH and receive any profit in the settlement token. There is no allowance to grant and nothing to withdraw later.

Where do the prices come from?

Directly from Uniswap V2 and V3 pool contracts on Robinhood Chain, read at a single block. They are indicative on-chain pool prices. They are not an official stock-market feed and they are not an oracle suitable for valuing collateral.

Is the executor contract audited?

No. It has an extensive local and mainnet-fork test suite, but passing tests are not an independent audit. The deployment and review status is stated in the documentation and updated only when it actually changes.

What is the $TONSTOCK contract address?

The only authoritative address is the one in the Token section of this site, which is validated on-chain before it is shown, and the one posted by the project’s X account (@tonstockrh). While that section says “CA: Soon”, no address has been announced and any address shown elsewhere is not from this project. No supply, utility or price statement is made about the token here.

Is TonStock affiliated with Robinhood?

No. TonStock is independent. It reads public contracts on a public chain and the public Stock Token registry. "Robinhood" is used only to name the network and the tokens.

Open the observatory.