How a Reading Is Made
Pick the block: the chain head minus 20 blocks (confirmed). Every balance, position and price below is read at that block.
Find candidate tokens: the base list (WETH, USDG, USDe), every token traded on the covered venues in the shared pool snapshot, and every token the wallet received in the last ~1.8 hours (Transfer events with the wallet as recipient). The public node refuses a whole-history token search without a token address, so a token outside these sets is not found; the page says so. Ranges that could not be read are counted and make the reading incomplete.
Read balances: balanceOf for up to 600 candidate tokens in Multicalls at the block, and the native ETH balance. Only non-zero balances are listed.
Find positions: Uniswap v4 position NFTs from the PositionManager's Transfer events to the wallet over its whole history, each checked with ownerOf at the block; Uniswap v3 and Topaz CL positions listed with tokenOfOwnerByIndex at the block. Up to 40 held positions are valued.
Value positions: v4 from the PoolManager's storage (price, liquidity, fee growth inside the range) with exact tick math; v3-style from positions() and the pool the factory itself names for the pair, fees from a simulated collect() from the owner.
Price tokens: ETH and WETH from Chainlink's ETH / USD feed on chain (an answer older than 6 hours is not used), USDG at $1; any other token, stock tokens included, from the deepest pool of the shared snapshot that holds at least $5,000 of a listed token within 2% of its price. Nothing else gets a dollar value.
Name stock tokens: a token counts as an official Robinhood stock token only when its runtime code is exactly Robinhood's stock-token proxy (code hash), its beacon slot holds Robinhood's beacon, and it has minted supply (only Robinhood's minter role can mint; anyone can deploy the proxy itself with any name). A ticker or a name proves nothing: tokens that copy a stock ticker or name without that proof are marked as lookalikes and shown with their address.
Compute the five metrics over priced value only, and say how much was left out.
| # | Metric | Limit type | Rule |
|---|---|---|---|
| 0 | Largest asset share | at most | largest asset value ÷ priced portfolio value; ETH + WETH are one asset; positions count as their two tokens (fees included). |
| 1 | Largest venue share of LP value | at most | largest venue's priced position value ÷ all priced position value; 0 when the wallet has no priced position. |
| 2 | LP value out of range | at most | priced value of positions whose range does not contain the current tick ÷ all priced position value. |
| 3 | Impact of selling the largest holding | at most | 1 − (received ÷ sold) ÷ pool price, for selling the largest priced balance in one swap, best of up to three simulated pools; unknown when none could take it. |
| 4 | Stablecoin share | at least | value of USDG at 0x5fc5…d168 ÷ priced portfolio value. |
A metric is "unknown" (65535 on chain) when any read behind it failed. With an active limit, unknown is reported as unknown, never as within the limit: the site and FinraLedgerNotary.evaluate() apply the same rule.
FinraExitProbe is never deployed. For one eth_call its runtime code is placed at 0x00000000000000000000000000000000f1a7e0b3 with a state override, and it asks each pool to swap 10%, 25%, 50% and 100% of a balance: v3-style pools through swap() with a callback that reverts with the amounts, v4 pools through unlock() → swap() → revert. Every swap is undone inside the call. A per-call secret stops a pool or hook from forging a result; a pool that reverts any other way counts as "cannot fill". Fork tests check that the probe's answer equals a real swap of the same size on the same state.
Uniswap v4 PoolManager
- Uniswap v4 0x8366a39cc670b4001a1121b8f6a443a643e40951
v4 PositionManager
- 0x58daec3116aae6d93017baaea7749052e8a04fa7
v3-style factories
- Uniswap v3 0x1f7d7550b1b028f7571e69a784071f0205fd2efa
- Topaz CL 0xaa5865dc3a60b25d305226d66fd573021f0d8ffb
- v3 e519 0xe51960f1b45f1c9fb6d166e6a884f866fc70433b
- CL c63d 0xc63d7338c178e805c544b8f897066bd3bbcbe136
- CL e0c4 0xe0c4ceb92d08ca985bb70fe0a22feb121a9854a8
- CL 1ac9 0x1ac9db4a2608ba45d6127b1737949b51bb54b7f3
- CL 5481 0x5481864ddd46a2d798df0925c23b7846e776e5e3
v3-style position managers
- Uniswap v3 0x73991a25c818bf1f1128deaab1492d45638de0d3
- Topaz CL 0x522bf4b5c9280bb6bb719f2ce7f514dd63c8c0c5
ETH / USD: Chainlink feed 0x78f3556b67e17df817d51ef5a990cdaf09e8d3a9. Stock-token beacon 0xe10b6f6b275de231345c20d14ab812db62151b00. Multicall3 at 0xcA11…CA11. Robinhood Chain RPC https://rpc.mainnet.chain.robinhood.com.
- Information you can check, not investment advice. Finra never says a portfolio is safe and promises no return.
- Reads Robinhood Chain only. Positions in other managers, staked in gauges, lent, or on other chains are not seen. Tokens are found among the base list, recently traded tokens and the last ~1.8 hours of transfers to the wallet; an older, untraded token can be missing.
- Dollar values come from Chainlink's ETH / USD feed on chain, USDG counted at $1, or a pool deep enough to price a token (stock tokens included: their pool price, not the stock market's); anything else is listed with no dollar value and left out of every share.
- Exit figures are simulations at one block: the next block can differ, and a sale split over time or routes can do better.
- Asset families are by type (ETH, dollar stablecoin, stock tokens, other), not measured correlation.
- plannedMore protocols on Robinhood Chain as they are checked on chain (lending, vaults, positions staked in gauges, the unnamed v3-style venues once identified, Uniswap v2-style pairs).
- plannedDepth an hour and a day ago, which needs an archive RPC (the public node keeps only recent state).
- plannedPush and email alerts (today alerts run only while the page is open).
- plannedLonger history: daily snapshots kept by a hosted job, with value and risk over time.
- plannedAn API for portfolio readings.
- planned$FINRA perks for those services, once they exist and their costs are known. Unproven.
Is Finra Finance connected to the US regulator called FINRA?
Finra Finance is an independent software project on Robinhood Chain. It is not affiliated with, endorsed by or connected to the Financial Industry Regulatory Authority (FINRA) or any regulator, and it is not a broker, dealer or adviser.
Does a low metric mean my portfolio is safe?
No. Finra Finance measures five things about one wallet at one block. It does not judge tokens, teams or contracts, and it never calls anything safe.
Does Finra Finance hold or move funds?
No. It reads the chain. FinraLedgerNotary stores limits and snapshot roots and accepts no funds: no payable function, no owner, no upgrade path. FinraExitProbe is never deployed.
Is FinraLedgerNotary reviewed?
It is new and has not had an independent security review. It holds no funds. Its tests (unit, fuzz, invariant) and a written self-review are in the repository.