Verification · run 2026-09-21
We run the same reads, quotes and router calls the app makes, against the live contracts on Robinhood Chain and the production site, and publish the result with the script that produced it. Deposits and withdrawals are executed inside the node as simulations. No transaction is signed.
Chain and contract wiring, live state of all 18 vaults, the fee counters, a deposit and two withdrawal paths per vault, the lending market, swap routing, and every page and API on the site.
A throwaway account is handed a USDG balance and allowance through eth_call state overrides so the router can execute end to end inside the node. The numbers are the node's answers, not ours.
This is not a third-party security audit and does not prove the contracts are free of bugs. Vertex has not commissioned an independent audit of the vault contracts. Verify before you deposit.
The RPC endpoint the app reads from, and the chain behind it.
eth_chainId returned 4663 (expected 4663, Robinhood Chain)
Block 68860115 sealed 0s ago
Contract present at 0xcA11…CA11, batched reads work
Token contracts and the wiring between each vault, its router, oracle and position.
USDG, 6 decimals at 0x5fc5…d168
Vertex (VERTEX), 18 decimals, supply 1,000,000,000, 10748879.691262666501279926 at the burn address
18 of 18 pinned vaults resolve to a version 7 registry entry (37 entries in total)
Vault 0xF8DE…73D5 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x5eaD…641e v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x6bAb…532d v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0xB20b…221d v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x9A8D…087b v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x6058…3A02 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x7075…26Bd v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0xE0d7…6456 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x387f…b057 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x2f93…559D v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x3BB0…1026 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0xc5aF…A876 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0xD72F…400c v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x3f70…3dDf v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x8197…54b9 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x0350…79a2 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x21ff…3787 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Vault 0x7881…8eF6 v7: router, position, oracle, treasury and buyback addresses match the registry; router settles in USDG
Live state of each of the 18 vaults, read at one block the way the vault page does.
Block 68860135: open, tick -220869 in [-222180, -219960], oracle quote 5 min old, value $487, 0.000280901 shares
Block 68860140: open, tick 218139 in [217320, 219780], oracle quote 7 min old, value $391, 0.000178589 shares
Block 68860145: open, tick 212263 in [211400, 214000], oracle quote 2 min old, value $1,706, 0.000554376 shares
Block 68860145: open, tick 230752 in [229260, 233880], oracle quote 0 min old, value $2,672, 0.00123667 shares
Block 68860150: open, tick -245083 in [-247600, -244200], oracle quote 16 min old, value $403, 0.000516283 shares
Block 68860155: open, tick -217610 in [-219540, -217080], oracle quote 6 min old, value $394, 0.000176388 shares
Block 68860160: open, tick 228575 in [227800, 230400], oracle quote 3 min old, value $1,460, 0.00107991 shares
Block 68860165: open, tick 210618 in [210480, 213000], oracle quote 9 min old, value $2,175, 0.000674272 shares
Block 68860165: open, tick 214260 in [213180, 215640], oracle quote 0 min old, value $402, 0.00015118 shares
Block 68860170: open, tick 225160 in [223400, 227800], oracle quote 9 min old, value $2,279, 0.000887717 shares
Block 68860176: open, tick 206913 in [205800, 210120], oracle quote 3 min old, value $398, 0.000104916 shares
Block 68860180: open, tick 222234 in [221300, 223700], oracle quote 12 min old, value $403, 0.000231143 shares
Block 68860185: open, tick 224397 in [224000, 226600], oracle quote 13 min old, value $3,628, 0.00213648 shares
Block 68860185: open, tick 210354 in [209850, 211400], oracle quote 29 min old, value $395, 0.000192432 shares
Block 68860191: open, tick 201440 in [200800, 205600], oracle quote 12 min old, value $407, 0.0000787578 shares
Block 68860196: open, tick -225867 in [-227500, -225080], oracle quote 6 min old, value $1,382, 0.00094362 shares
Block 68860200: open, tick -209907 in [-210540, -209340], oracle quote 0 min old, value $392, 0.000238681 shares
Block 68860206: open, tick -217043 in [-219300, -216120], oracle quote 29 min old, value $1,382, 0.0117928 shares
What each vault's own counters say about the fee split. The site says 70% of claimed fees compounds, 20% is reserved for the buyback and 10% goes to the protocol treasury.
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (AMZN gross 0.00275151, USDG gross 0.658194)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.206443, AAPL gross 0.000593521)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 16.6884, AMD gross 0.0142811)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 16.9472, CRCL gross 0.196436)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (GME gross 0.0193086, USDG gross 0.622202)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (GOOGL gross 0.000620239, USDG gross 0.309207)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 17.317, INTC gross 0.105479)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 8.29819, META gross 0.0124725)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.390879, MSFT gross 0.000651629)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 19.3419, MSTR gross 0.0934885)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.49299, MU gross 0.000666565)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.345324, NVDA gross 0.00155875)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 22.8431, PLTR gross 0.116518)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.273977, QQQ gross 0.000392824)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (USDG gross 0.522224, SNDK gross 0.000696173)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (SPCX gross 0.00482947, USDG gross 0.733566)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (SPY gross 0.0000786477, USDG gross 0.032871)
Matches what the site describes. Counters show 70% compounds, 20% buyback, 10% protocol treasury (TSLA gross 0.0109198, USDG gross 3.20437)
Builds a 100 USDG deposit for every vault exactly like the vault page and executes the router call inside eth_call. The test account is given a USDG balance and allowance through a state override; nothing is signed or sent.
balances mapping at slot 1, allowances mapping at slot 3 (found by probing eth_call state overrides)
100 USDG → 0.0000559534 shares, swap leg 40.730879 USDG, router.deposit executes with 1,507,416 gas
100 USDG → 0.0000442773 shares, swap leg 33.451863 USDG, router.deposit executes with 1,948,356 gas
Refused by design: the valuation's pool guard rejects the pool state (pool 605.34 vs reference 611.52, -1.01%); deposits and USDG exits wait until the pool re-aligns with the Chainlink reference; token exits keep working
100 USDG → 0.0000448872 shares, swap leg 32.93718 USDG, router.deposit executes with 1,536,867 gas
100 USDG → 0.000124205 shares, swap leg 26.950637 USDG, router.deposit executes with 1,499,639 gas
100 USDG → 0.0000434506 shares, swap leg 21.933672 USDG, router.deposit executes with 1,951,331 gas
100 USDG → 0.0000717436 shares, swap leg 31.062331 USDG, router.deposit executes with 1,914,631 gas
100 USDG → 0.0000300745 shares, swap leg 6.273929 USDG, router.deposit executes with 1,975,590 gas
100 USDG → 0.0000364521 shares, swap leg 43.52144 USDG, router.deposit executes with 1,507,095 gas
100 USDG → 0.0000377833 shares, swap leg 40.421629 USDG, router.deposit executes with 1,529,664 gas
Refused by design: the pool price is 139 ticks (1.39%) from its 30 minute average, at or beyond the router's 100 tick TWAP guard; swaps wait for the average to catch up
100 USDG → 0.0000556616 shares, swap leg 38.712029 USDG, router.deposit executes with 1,525,943 gas
100 USDG → 0.0000571206 shares, swap leg 16.517824 USDG, router.deposit executes with 1,972,805 gas
100 USDG → 0.0000471989 shares, swap leg 32.348344 USDG, router.deposit executes with 1,502,764 gas
100 USDG → 0.0000187713 shares, swap leg 14.781841 USDG, router.deposit executes with 1,971,988 gas
100 USDG → 0.0000662347 shares, swap leg 32.524904 USDG, router.deposit executes with 1,521,684 gas
100 USDG → 0.0000591253 shares, swap leg 46.711845 USDG, router.deposit executes with 1,953,279 gas
100 USDG → 0.000827543 shares, swap leg 29.656712 USDG, router.deposit executes with 1,516,410 gas
Redeems 0.1% of each vault's supply from the test account, both as pool tokens (vault.redeem) and as USDG through the router's protected swap (router.withdrawUSDG). Share balance and allowance are injected through a state override.
vault share balances at slot 0, allowances at slot 1
0.000000280901 shares → tokens: 0.000782109 AMZN + 0.286111 USDG · USDG only: 0.485759 USDG (floor 0.481943); with a 1% floor the token route returns 0.000782109 AMZN and 0.286111 USDG
0.000000178589 shares → tokens: 0.000392706 AAPL + 0.258708 USDG · USDG only: 0.39034 USDG (floor 0.388855); with a 1% floor the token route returns 0.258708 USDG and 0.000392706 AAPL
Token exit works: 0.000000554376 shares → 0.000958113 AMD + 1.119849 USDG. USDG exit: The pool's price oracle (observe) reverts: the router cannot bound a swap by the TWAP, so USDG deposits and USDG exits are unavailable for this vault until the pool oracle answers; token exits keep working
0.00000123667 shares → tokens: 0.00930449 CRCL + 1.783919 USDG · USDG only: 2.669272 USDG (floor 2.650192); with a 1% floor the token route returns 1.78392 USDG and 0.00930449 CRCL
0.000000516283 shares → tokens: 0.00477251 GME + 0.293933 USDG · USDG only: 0.401362 USDG (floor 0.400468); with a 1% floor the token route returns 0.00477251 GME and 0.293933 USDG
0.000000176388 shares → tokens: 0.000246446 GOOGL + 0.306311 USDG · USDG only: 0.393407 USDG (floor 0.392197); with a 1% floor the token route returns 0.000246446 GOOGL and 0.306311 USDG
0.00000107991 shares → tokens: 0.00381818 INTC + 1.00403 USDG · USDG only: 1.451364 USDG (floor 1.448672); with a 1% floor the token route returns 1.00403 USDG and 0.00381818 INTC
0.000000674272 shares → tokens: 0.000192847 META + 2.036574 USDG · USDG only: 2.173698 USDG (floor 2.171548); with a 1% floor the token route returns 2.03657 USDG and 0.000192847 META
0.00000015118 shares → tokens: 0.000358318 MSFT + 0.224994 USDG · USDG only: 0.402094 USDG (floor 0.397859); with a 1% floor the token route returns 0.224994 USDG and 0.000358318 MSFT
0.000000887717 shares → tokens: 0.00558558 MSTR + 1.352697 USDG · USDG only: 2.274421 USDG (floor 2.255852); with a 1% floor the token route returns 1.3527 USDG and 0.00558558 MSTR
Token exit works: 0.000000104916 shares → 0.000104639 MU + 0.289607 USDG. USDG exit: Refused by design: the pool price is 136 ticks (1.36%) from its 30 minute average, at or beyond the router's 100 tick TWAP guard; swaps wait for the average to catch up
0.000000231143 shares → tokens: 0.000707336 NVDA + 0.244545 USDG · USDG only: 0.402449 USDG (floor 0.398848); with a 1% floor the token route returns 0.244545 USDG and 0.000707336 NVDA
0.00000213648 shares → tokens: 0.00331812 PLTR + 3.025489 USDG · USDG only: 3.615833 USDG (floor 3.613023); with a 1% floor the token route returns 3.02549 USDG and 0.00331812 PLTR
0.000000192432 shares → tokens: 0.000177669 QQQ + 0.26566 USDG · USDG only: 0.395757 USDG (floor 0.392227); with a 1% floor the token route returns 0.26566 USDG and 0.000177669 QQQ
0.0000000787578 shares → tokens: 0.0000340611 SNDK + 0.346486 USDG · USDG only: 0.406664 USDG (floor 0.405465); with a 1% floor the token route returns 0.346486 USDG and 0.0000340611 SNDK
0.00000094362 shares → tokens: 0.00294553 SPCX + 0.925055 USDG · USDG only: 1.382284 USDG (floor 1.370499); with a 1% floor the token route returns 0.00294553 SPCX and 0.925055 USDG
0.000000238681 shares → tokens: 0.000240813 SPY + 0.206352 USDG · USDG only: 0.390222 USDG (floor 0.386944); with a 1% floor the token route returns 0.000240813 SPY and 0.206352 USDG
0.0000117928 shares → tokens: 0.00110381 TSLA + 0.967164 USDG · USDG only: 1.380214 USDG (floor 1.374817); with a 1% floor the token route returns 0.00110381 TSLA and 0.967164 USDG
The onchain allocator at 0x84d849e0489cfedc4c08b2c26fd12e02c5bb597b: bytecode, roles and limits.
Matches the published artifact (solc 0.8.24, source sha256 45d71bf11123…)
owner 0xA0D4Ed27…, keeper 0xA0D4Ed27…, guardian 0xA0D4Ed27…, treasury 0xA0D4Ed27…; cap 2500 USDG, fee 0.3% in and 0.3% out, max loss 3% per move and 1% of the cap or the pool per day, 8 target(s)
8 target(s): AMD 35%, CRCL 35%, INTC 35%, META 35%, MSTR 35%, PLTR 35%, SPCX 35%, TSLA 35%
Not deployed yet; skipped.
The META lending market and the oracle guard behind it.
META V7 Lending active at block 68860819: $600 supplied, $228 borrowed, utilisation 38.0%, oracle available, bad debt 0
Position endpoint answers for an arbitrary owner at block 68860824 (supply 0, collateral 0, debt 0)
healthy: Reference feed updated 1 minutes ago. Price-dependent actions are allowed.
The aggregator route the trade page shows, and the calldata it would hand to the wallet.
KyberSwap route: 0.296767 AAPL out (≈$100.7078270180049), gas 467166
4132 bytes of calldata for router 0x6131…37b5 (contract present on chain)
Where the VERTEX supply actually sits: the burn address, the wallets the project has used, and the pool. Liquidity on Robinhood Chain lives inside the Uniswap V4 singleton, and a liquidity position is owned by whoever holds it; these checks read the project's own wallets so anyone can confirm what they do and do not control.
1,000,000,000 minted, 10,748,880 (1.07%) held by the burn address, 989,251,120 circulating
0x0Ce9…56A2 holds no VERTEX, and has never received or sent an ERC-721, so it holds no liquidity position
0xBABe…5676 holds no VERTEX, and has never received or sent an ERC-721, so it holds no liquidity position
0xc906…0310 holds no VERTEX, and has never received or sent an ERC-721, so it holds no liquidity position
360,596,120 VERTEX (36.06% of supply) sits in the Uniswap V4 singleton at 0x8366…0951, which custodies every pool on the chain
Pages and APIs served from https://usevertex.xyz.
200 text/html; charset=utf-8, 597 KB
200 text/html; charset=utf-8, 462 KB
200 text/html; charset=utf-8, 433 KB
200 text/html; charset=utf-8, 423 KB
200 text/html; charset=utf-8, 436 KB
200 text/html; charset=utf-8, 426 KB
200 text/html; charset=utf-8, 419 KB
200 text/html; charset=utf-8, 463 KB
200 text/html; charset=utf-8, 428 KB
200 text/html; charset=utf-8, 481 KB
200 text/html; charset=utf-8, 533 KB
200 text/html; charset=utf-8, 437 KB
200 text/html; charset=utf-8, 426 KB
200 text/html; charset=utf-8, 455 KB
200: 18 vaults, 18 with a live snapshot, 18 with a fee APR, source onchain
200: All monitored systems operational; api Operational, oracle healthy, vault deployed, keeper execute
200: 1 market(s), Active
200: model v0.1, 5 position(s) summing to 1000.00 USDG, weights 1.0000; AMD 31.7%, MSTR 20.2%, CRCL 19.3%, INTC 17.6%, META 11.2%
200: 1 quote(s) kyber 0.296767 AAPL
200: calldata for 0x6131…37b5 returned
200: eth_chainId → 0x1237
403: Method not allowed through the relay
HSTS and nosniff present
www alias does not resolve yet (fetch failed)
Reproduce it
The script lives in the site repository as scripts/verify.ts. It needs Node 22 and nothing else: no keys, no wallet, no API token. Point it at any RPC for Robinhood Chain with NEXT_PUBLIC_RPC_URL if you do not trust the default.
The raw result of this run is at /verification/latest.json. Questions go to @useevertex or the contact page.
$ git clone https://github.com/pablooalonnso-web/claudemaxing5.git vertex $ cd vertex && npm install $ npm run verify # chain only, no site checks $ npm run verify -- --no-site # also typecheck and lint the site $ npm run verify -- --build