{"version":"1.0.0","generatedAt":"2026-09-19T02:34:43.196Z","protocol":{"name":"Tesoro","symbol":"TORO","summary":"Hold $TORO and a share of every trading fee is spent buying a real tokenized asset for you, every cycle. You pick the asset. No staking, no lockup.","docs":"https://tesoro.wtf"},"chain":{"id":4663,"name":"Robinhood Chain","network":"mainnet","rpc":"https://rpc.mainnet.chain.robinhood.com","explorer":"https://robinhoodchain.blockscout.com","nativeCurrency":{"name":"Ether","symbol":"ETH","decimals":18}},"deployment":{"status":"not-deployed","addresses":{"token":null,"treasury":null,"distributor":null,"pool":null,"router":null,"weth":"0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73","launchpad":null,"burnReserve":null,"hook":null,"splitter":null,"lockedLiquidity":null}},"venue":{"universalRouter":"0x8876789976dEcBfCbBbe364623C63652db8C0904","v4Quoter":"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94","permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","swapRouter":null,"quote":{"signature":"quoteExactInputSingle(((address,address,uint24,int24,address) poolKey,bool zeroForOne,uint128 exactAmount,bytes hookData))","contract":"0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94","note":"Non-view: call it through eth_call / simulateContract, not readContract."},"swap":{"signature":"execute(bytes commands, bytes[] inputs, uint256 deadline)","contract":"0x8876789976dEcBfCbBbe364623C63652db8C0904","note":"Buying spends native ETH as msg.value. Selling pulls $TORO through Permit2, which needs an ERC-20 approval to Permit2 and a Permit2 allowance to this router."}},"pool":null,"universe":[{"symbol":"GLD","name":"SPDR Gold Trust","address":"0xC9a981FEE1F9DEc688bb123ccDeCc63D0deBFC4e","sleeve":"GOLD","poolFee":3000,"status":"LIVE"},{"symbol":"NVDA","name":"NVIDIA","address":"0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"AAPL","name":"Apple","address":"0xaF3D76f1834A1d425780943C99Ea8A608f8a93f9","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"MSFT","name":"Microsoft","address":"0xe93237C50D904957Cf27E7B1133b510C669c2e74","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"GOOGL","name":"Alphabet Class A","address":"0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"AMZN","name":"Amazon","address":"0x12f190a9F9d7D37a250758b26824B97CE941bF54","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"META","name":"Meta Platforms","address":"0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"AVGO","name":"Broadcom","address":"0x156E175DD063a8cE274C50654eF40e0032b3fbcF","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"TSLA","name":"Tesla","address":"0x322F0929c4625eD5bAd873c95208D54E1c003b2d","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"AMD","name":"AMD","address":"0x86923f96303D656E4aa86D9d42D1e57ad2023fdC","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"NFLX","name":"Netflix","address":"0xE0444EF8BF4eD74f74FD73686e2ddF4C1c5591E8","sleeve":"STOCKS","poolFee":3000,"status":"LIVE"},{"symbol":"SPY","name":"SPDR S&P 500 ETF Trust","address":"0x117cc2133c37B721F49dE2A7a74833232B3B4C0C","sleeve":"RWA","poolFee":500,"status":"LIVE"},{"symbol":"VTI","name":"Vanguard Total Stock Market ETF","address":"0x0594134DF3f171a354D9C85eBD65b7A6148F6D09","sleeve":"RWA","poolFee":500,"status":"LIVE"},{"symbol":"QQQ","name":"Invesco QQQ","address":"0xD5f3879160bc7c32ebb4dC785F8a4F505888de68","sleeve":"RWA","poolFee":500,"status":"LIVE"},{"symbol":"SMH","name":"VanEck Semiconductor ETF","address":"0x072f979c2CAc8e1391B0162a87Fee094bF8744a0","sleeve":"RWA","poolFee":300,"status":"LIVE"},{"symbol":"SOXX","name":"iShares Semiconductor ETF","address":"0x75742c18BC1f1C5c5f448f4C9D9C6F66dafAAa38","sleeve":"RWA","poolFee":300,"status":"LIVE"},{"symbol":"SCHD","name":"Schwab US Dividend Equity ETF","address":"0xd63ABB2C13d7a8421a8017a712802053568e3C1D","sleeve":"RWA","poolFee":500,"status":"LIVE"},{"symbol":"MU","name":"Micron Technology","address":"0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD","sleeve":"STOCKS","poolFee":300,"status":"LIVE"},{"symbol":"INTC","name":"Intel","address":"0xc72b96e0E48ecd4DC75E1e45396e26300BC39681","sleeve":"STOCKS","poolFee":300,"status":"LIVE"}],"fees":{"toroSwapBps":300,"launchpadTradeBps":100,"launchCreateEth":0.0005,"note":"The $TORO fee is taken at the pool by a Uniswap v4 hook, on the ETH leg. $TORO itself has no transfer tax; wallet-to-wallet transfers pay nothing."},"chores":[{"name":"claim","summary":"Collect your own pot for one asset, for one closed epoch.","signature":"claim(uint48 epoch, uint8 sleeve, address asset)","contract":null,"permissionless":false,"implemented":true,"available":false,"safety":"msg.sender only — the assets can land nowhere but the caller's own wallet, and a second call for the same epoch reverts AlreadyClaimed.","precondition":"The epoch is final (epoch < currentEpoch()) and claimable() is above zero.","unavailableReason":"No EpochDistributor is deployed."},{"name":"rollover","summary":"Carry a stranded pot from a dead epoch into the live one.","signature":"rollover(uint48 epoch, uint8 sleeve, address asset)","contract":null,"permissionless":true,"implemented":true,"available":false,"safety":"The caller receives nothing. The pot can only move forward into the current epoch of the same sleeve and asset, where the holders who are actually eligible can claim it.","precondition":"The epoch is final, its sleeve has zero eligible supply, and the pot is non-empty. Otherwise it reverts EpochNotFinal, NotEmptySleeve or NothingToClaim.","unavailableReason":"No EpochDistributor is deployed."},{"name":"payOperations","summary":"Pay out the operations leg the splitter has accrued.","signature":"payOperations()","contract":null,"permissionless":true,"implemented":true,"available":false,"safety":"The caller receives nothing and chooses nothing. `operations` is immutable on the splitter, so the only possible destination is the one fixed at genesis.","precondition":"operationsOwed() is above zero, or it reverts NothingToDo.","unavailableReason":"No LaunchpadSplitter is deployed."},{"name":"burn","summary":"Advance the plank — burn the next vested tranche.","signature":"burn()","contract":null,"permissionless":true,"implemented":true,"available":false,"safety":"The schedule is fixed in the contract: the caller chooses only WHEN an already-vested tranche is realised, never how much, so it cannot be front-run into a different outcome. The caller receives nothing.","precondition":"releasable() is above zero, or it reverts NothingToBurn.","unavailableReason":"No BurnReserve is deployed."}],"actions":{"pick":null,"sleeveOf":null,"excluded":null,"claimable":null,"epoch":null,"releasable":null,"launch":null},"endpoints":{"manifest":"/api/agent","state":"/api/agent/state","feed":"/api/agent/feed","humans":"/agents","llms":"/llms.txt"}}