On-chain
Contracts and custody
Your vault is a contract owned by your wallet. The bot manages its position only through the TRUSS LP vault executor, which checks every operation on chain. You can close the position and withdraw everything at any time, with or without the app.
Architecture
TRUSS LP runs the same design on every chain and DEX it supports. For each DEX there are three contracts:
- Vault factory - creates your vault for a pool the owner has approved, takes the one-time $1 USDC (or USDG) creation fee and moves in your deposit, in one transaction.
- Your vault - one per depositor and pool, owned by your wallet. It holds your tokens and your position. Every vault is a copy of the vault implementation listed below, so its code is the same published code.
- Vault executor - carries out the bot’s position operations (open, rebalance, add, exit, claim) in single transactions, and only for vaults its factory created. It never keeps your position or your tokens between transactions.
None of these contracts can be upgraded, and none of them can pause your withdrawals. The libraries listed under each chain are shared code the executor and factory call; they hold nothing. Each DEX’s own contracts have their own rules, which TRUSS LP does not control - for example, Hybra’s admins can pause withdrawals from its gauges.
Every contract, by chain
71 contracts on 4 chains, 71 with their source code published and verified on the chain’s explorer. Every address links to the explorer. Checked 29 Oct 2026.
Base · OP Mainnet · Robinhood Chain · HyperEVM
Base chain ID 8453
| Contract | Venue | Address | Source |
|---|---|---|---|
| Vault executor TrussAtomicB1 | Aero | 0x865D8CAB29E4003B9B512e2121FdC1660d66B1D3 | Verified |
| Vault factory TrussVaultFactoryB1 | Aero | 0xd505a36bD8e51E468e24e27bCE63d1a5BF775205 | Verified |
| Vault implementation TrussVaultB1 | Aero | 0xcA36F6bF60E7FF9FF930e0734c63EB2bAc6BBdA5 | Verified |
| Sale router (best AERO price) TrussSaleRouter | Receipt cycle | 0x03e325125d239c0e48c8cc533044fd0b636e13ee | Verified |
| TrussCycle (receipt cycle) TrussCycle | Receipt cycle | 0xa864C53bcEEf15BA098e0605ce0D40ED18d2Fa6f | Verified |
| Dust sweeper DustSweeper | Swaps | 0x65897F150389c94d9cC696fF6c65fC54dD5C6Ae1 | Verified |
| TRUSS AGG executor BaseAggExecutor | Swaps | 0xF98B66F54CE0A29f23B5D67024695F45807C622D | Verified |
Libraries (3) - code the executors and factories call into; they hold nothing
| Contract | Venue | Address | Source |
|---|---|---|---|
| AeroLpLib (library) AeroLpLib | Aero | 0x99e49053407a8252112870a3e1c79319Abdef1AE | Verified |
| GuardLib (library) GuardLib | Aero | 0xa6c1D3D4fAfd5c5a4601Ad8e1EE82D6608919525 | Verified |
| VaultGasLib (library) VaultGasLib | Aero | 0x81104d0d24B3167422FB608755CEFC34b8fA0cff | Verified |
Routers vault swaps can use on Base (14)
| Router | Address | Vault swaps | Swap screen and dust |
|---|---|---|---|
| KyberSwap | 0x6131B5fae19EA4f9D964eAc0408E4408b66337b5 | Yes | Yes |
| 1inch | 0x111111125421cA6dc452d289314280a0f8842A65 | Yes | Yes |
| FlyTrade | 0x20F6ee51340aDEed01A59B0e65cB3703f3dc860c | Yes | Yes |
| LI.FI | 0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE | Yes | Yes |
| Velora | 0x6A000F20005980200259B80c5102003040001068 | Yes | Yes |
| Sushi | 0xAC4c6e212A361c968F1725b4d055b47E63F80b75 | Yes | Yes |
| Aero SwapRouter | 0xBE6D8f0d05cC4be24d5167a3eF062215bE6D18a5 | Yes | Yes |
| Aero SwapRouter GC | 0xcbBb8035cAc7D4B3Ca7aBb74cF7BdF900215Ce0D | Yes | Yes |
| Aero SwapRouter G3 | 0x698Cb2b6dd822994581fEa6eA4Fc755d1363A92F | Yes | Yes |
| Uni SwapRouter02 | 0x2626664c2603336E57B271c5C0b26F421741e481 | Yes | Yes |
| Pancake SmartRouter | 0x678Aa4bF4E210cf2166753e054d5b7c31cc7fa86 | Yes | Yes |
| TRUSS AGG | 0xF98B66F54CE0A29f23B5D67024695F45807C622D | Yes | Yes |
| OpenOcean | 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 | Yes | No |
| Aero SwapRouter (new Aero) | 0x9Ee35Bf1bd69a03c6F0393582030fCe8Bb93D418 | Yes | Yes |
OP Mainnet chain ID 10
| Contract | Venue | Address | Source |
|---|---|---|---|
| Vault executor TrussAtomicB1 | Aero | 0x7785A9aa795887AAA483cf52Df5f77446055442B | Verified |
| Vault factory TrussVaultFactoryB1 | Aero | 0xd6A23EAaC6FF894e327519AD91B2Fad638266f7B | Verified |
| Vault implementation TrussVaultB1 | Aero | 0x737B40813e189519Ef7dFB5fB56a2da22d26c97a | Verified |
| Receipt buyer (xAERO) TrussReceiptBuyer | Aero | 0x3F2a6Fc007D9Ab1692434aDEa9950afa884BdE74 | Verified |
| Dust sweeper DustSweeper | Swaps | 0x92B3A0a9b95C0C2fC8baFeCe97563C39769d92bB | Verified |
Libraries (3) - code the executors and factories call into; they hold nothing
| Contract | Venue | Address | Source |
|---|---|---|---|
| AeroLpLib (library) AeroLpLib | Aero | 0xA4476D535299Fe4ADa56b1533D2537E1999Abb4D | Verified |
| GuardLib (library) GuardLib | Aero | 0xFDCa340485675Db2cc0b9E2869A058ABF816C3a7 | Verified |
| VaultGasLib (library) VaultGasLib | Aero | 0x38d60943cF6af94d6793cd29AB3598F0ab3ac9c0 | Verified |
Routers vault swaps can use on OP Mainnet (8)
| Router | Address | Vault swaps | Swap screen and dust |
|---|---|---|---|
| KyberSwap | 0x6131B5fae19EA4f9D964eAc0408E4408b66337b5 | Yes | Yes |
| 1inch | 0x111111125421cA6dc452d289314280a0f8842A65 | Yes | Yes |
| LI.FI | 0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE | Yes | Yes |
| Velora | 0x6A000F20005980200259B80c5102003040001068 | Yes | Yes |
| Sushi | 0xAC4c6e212A361c968F1725b4d055b47E63F80b75 | Yes | Yes |
| Uni SwapRouter02 (OP) | 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 | Yes | Yes |
| Aero SwapRouter (OP) | 0x9Ee35Bf1bd69a03c6F0393582030fCe8Bb93D418 | Yes | Yes |
| OpenOcean | 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 | Yes | No |
Robinhood Chain chain ID 4663
| Contract | Venue | Address | Source |
|---|---|---|---|
| Vault executor TrussAtomicB1 | Aero (Robinhood) | 0xC042CA170fF7a7456ABe9D9E0ddf9aC1cAA6a859 | Verified |
| Vault factory TrussVaultFactoryB1 | Aero (Robinhood) | 0xc4bd16C4E762e1289fc468EeaEe4e7eA47775B98 | Verified |
| Vault implementation TrussVaultB1 | Aero (Robinhood) | 0xf3c6F988b65e1D92e8e49f034375F95BCC36CE47 | Verified |
| Vault executor TrussAtomicFB1 | Fables | 0xF8D0AC0E83BeA460684eBE2cb398668748526E7f | Verified |
| Vault factory TrussVaultFactoryFB1 | Fables | 0xa8afBD03602dc044C4Fd7b2231216AB3104A0f38 | Verified |
| Vault implementation TrussVaultFB1 | Fables | 0x3C69349D771B19D74ea123b9ffBfb678B8d7B5bf | Verified |
| Vault executor TrussAtomicGG1 | GIGA | 0xE0011C722B276ae65AaC6B00B31836C2603B0A27 | Verified |
| Vault factory TrussVaultFactoryGG1 | GIGA | 0x2Ff790D1d1A0cEAeCd340F60d601B0cA22757D35 | Verified |
| Vault implementation TrussVaultGG1 | GIGA | 0xe55F05831921dd9b6C9a8CEFEe1c9085B6e09d04 | Verified |
| Vault executor TrussAtomicRM1 | Ramses (Robinhood) | 0xE61dA2Be475aA793b7A967B3EDf46fE612Ca0C32 | Verified |
| Vault factory TrussVaultFactoryRM1 | Ramses (Robinhood) | 0xFa179DE68D711360EcF9EAE2E4f9b1b78F5f34Aa | Verified |
| Vault implementation TrussVaultRM1 | Ramses (Robinhood) | 0xCd139d87C4f003b0a293882215f4b663D76845a7 | Verified |
| Vault executor TrussAtomicRS1 | Raphael | 0x244aDf93052D1BF7079Ce869a2F98ba64181a08E | Verified |
| Vault factory TrussVaultFactoryRS1 | Raphael | 0xdfB916FF892a2e9BC43f36e9a584f36c2E28eeb0 | Verified |
| Vault implementation TrussVaultRS1 | Raphael | 0x3b7bF4f0d0619f27A984A259Af252Fc3aEfa48e3 | Verified |
| Vault executor TrussAtomicRS1 | UP33 | 0x7785A9aa795887AAA483cf52Df5f77446055442B | Verified |
| Vault factory TrussVaultFactoryRS1 | UP33 | 0x7158B5D77cD54f78a536e3Ace28299fd5a7609a6 | Verified |
| Vault implementation TrussVaultRS1 | UP33 | 0x7796fF73fb199d86b8eF117347257EeBA21a1771 | Verified |
| Receipt buyer (xAERO) TrussReceiptBuyer | Aero (Robinhood) | 0xdCa74b9078d0d6f2E3fa2319c2d21aF8De4Bbf11 | Verified |
| Pool view factory FablesViewFactory | Fables | 0x24081dDe83aE3242e4CcaE6033b9868302941e54 | Verified |
| Position reader (lens) RamsesNfpmLens | Ramses (Robinhood) | 0x7f4A75f10BD19D9c79BE5D5e1de50ec2A795B74b | Verified |
| Dust sweeper DustSweeper | Swaps | 0x89d10cB24D8AC48BB525e7c35dFE5ea4f6Da4E53 | Verified |
| TRUSS AGG executor TrussAggExecutor | Swaps | 0x2f38660092D220f0D4F621F8922abB5aEeF6af13 | Verified |
Libraries (17) - code the executors and factories call into; they hold nothing
| Contract | Venue | Address | Source |
|---|---|---|---|
| AeroLpLib (library) AeroLpLib | Aero (Robinhood) | 0x3Bdd72D0A918dE9F4dE4f6dB573De7e1189D2589 | Verified |
| GuardLib (library) GuardLib | Aero (Robinhood) | 0xe3E0D1Cf31402cf2Dc156dF7826f176d474AaA2f | Verified |
| L1 fee oracle ArbL1FeeOracle | Aero (Robinhood) | 0x67FE531A04776D7ddf9A8f5452f62eC4314Ee2A6 | Verified |
| VaultGasLib (library) VaultGasLib | Aero (Robinhood) | 0xd0De6B050B5Fb2B1AD92593eb63108a547e3efC0 | Verified |
| FbVaultLib (library) FbVaultLib | Fables | 0x508D86dC63362209CAff041542764c1CaE6489f8 | Verified |
| GuardLib (library) GuardLib | Fables | 0xAaE49E7a179018F9873441bD4C79d42331691866 | Verified |
| RhFablesLpLib (library) RhFablesLpLib | Fables | 0xa1B828EE82B84d3c1E8739a10D23767B1ad25bcC | Verified |
| VaultGasLib (library) VaultGasLib | Fables | 0x04F95Ec57cA958432EFf4e686dd011b0B0c1ABD6 | Verified |
| GuardLib (library) GuardLib | GIGA | 0xd318D50A3eaBDbCb3B196cB9242808420B634160 | Verified |
| RhGigaLpLib (library) RhGigaLpLib | GIGA | 0x16274DaaFa3Ec27524775191fd03B782de319f40 | Verified |
| VaultGasLib (library) VaultGasLib | GIGA | 0xa3bd5C5Ed54FD4F8e52629D6ad307B3708B4959B | Verified |
| GuardLib (library) GuardLib | Ramses (Robinhood) | 0x2584eB443D387E4d8B0CEa7efb97374B115AcC7a | Verified |
| RhRamLpLib (library) RhRamLpLib | Ramses (Robinhood) | 0xa9c3C568890AfF606D841999B1EF8E1a673a7ad9 | Verified |
| VaultGasLib (library) VaultGasLib | Ramses (Robinhood) | 0x941191dc22D4AA3eADB16bCD4887454F543A48D1 | Verified |
| GuardLib (library) GuardLib | UP33 / Raphael | 0xFDCa340485675Db2cc0b9E2869A058ABF816C3a7 | Verified |
| RhSlipLpLib (library) RhSlipLpLib | UP33 / Raphael | 0xA4476D535299Fe4ADa56b1533D2537E1999Abb4D | Verified |
| VaultGasLib (library) VaultGasLib | UP33 / Raphael | 0x38d60943cF6af94d6793cd29AB3598F0ab3ac9c0 | Verified |
Routers vault swaps can use on Robinhood Chain (12)
| Router | Address | Vault swaps | Swap screen and dust |
|---|---|---|---|
| KyberSwap | 0x6131B5fae19EA4f9D964eAc0408E4408b66337b5 | Yes | Yes |
| 1inch (RH) | 0x5A705DE8982235a7fa45bB83dCaCf03a211389C7 | Yes | Yes |
| LI.FI (RH) | 0xB477751B76CF82d00a686A1232f5fCD772414Af3 | Yes | Yes |
| UP33 router | 0xC062b870E813fcA720f1e002c234369Ab3aB9415 | Yes | Yes |
| Uni SwapRouter02 (RH) | 0xCaf681a66D020601342297493863E78C959E5cb2 | Yes | Yes |
| Metric router | 0x02201E6f13c41506c7Bb635d7543F98826229aB7 | No | Yes |
| Tessera router | 0x55555522005BcAE1c2424D474BfD5ed477749E3e | Yes | Yes |
| TRUSS AGG (RH) | 0x2f38660092D220f0D4F621F8922abB5aEeF6af13 | Yes | Yes |
| FlyTrade | 0x20F6ee51340aDEed01A59B0e65cB3703f3dc860c | No | Yes |
| Raphael router | 0xb17125089BcAEf75f7C06d4b578ec624982CB2a8 | Yes | No |
| Uniswap V2 Router02 | 0x89e5DB8B5aA49aA85AC63f691524311AEB649eba | Yes | No |
| OpenOcean | 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 | Yes | No |
| 0x AllowanceHolder (Cancun) | 0x0000000000001fF3684f28c67538d4D072C22734 | Yes | No |
| Aero SwapRouter (new Aero) | 0x9Ee35Bf1bd69a03c6F0393582030fCe8Bb93D418 | Yes | No |
HyperEVM chain ID 999
| Contract | Venue | Address | Source |
|---|---|---|---|
| Vault executor TrussAtomicHY1 | Hybra | 0x76C6BdBebEc33e5B97Bd029Da38280edD39D48DE | Verified |
| Vault factory TrussVaultFactoryHY1 | Hybra | 0x7B2a713082CeddB4ac7F05A33e13C1D38e1F2C6B | Verified |
| Vault implementation TrussVaultHY1 | Hybra | 0x0278d5a4cf43B745C2bCda05Fb74d17B709f82a4 | Verified |
| Vault executor TrussAtomicRM1 | Ramses (HyperEVM) | 0x3F97cB184a5ff12e567581BFbD8f03b60F1585AA | Verified |
| Vault factory TrussVaultFactoryRM1 | Ramses (HyperEVM) | 0x6940112e98ca5D3CeB5a369e4b6744AD2554a84E | Verified |
| Vault implementation TrussVaultRM1 | Ramses (HyperEVM) | 0x93fe178C9CCdD6414A6e498d75B3D0138516D99f | Verified |
| Dust sweeper DustSweeper | Swaps | 0x81cf7bA56EC2E2F6BC009C7799B1dd8c7f12578C | Verified |
Libraries (6) - code the executors and factories call into; they hold nothing
| Contract | Venue | Address | Source |
|---|---|---|---|
| GuardLib (library) GuardLib | Hybra | 0x2d22b4ba55b781cf4832927d83A323c0f9505471 | Verified |
| HybraLpLib (library) HybraLpLib | Hybra | 0x7158B5D77cD54f78a536e3Ace28299fd5a7609a6 | Verified |
| VaultGasLib (library) VaultGasLib | Hybra | 0x667C18f11332530514cB640323edf16CE9E37591 | Verified |
| GuardLib (library) GuardLib | Ramses (HyperEVM) | 0x7785A9aa795887AAA483cf52Df5f77446055442B | Verified |
| RamsesLpLib (library) RamsesLpLib | Ramses (HyperEVM) | 0xd6A23EAaC6FF894e327519AD91B2Fad638266f7B | Verified |
| VaultGasLib (library) VaultGasLib | Ramses (HyperEVM) | 0xE4E1Ae77376A39B9b534809E04BDC8802D041Bfe | Verified |
Routers vault swaps can use on HyperEVM (10)
| Router | Address | Vault swaps | Swap screen and dust |
|---|---|---|---|
| LiqdSwap | 0x744489Ee3d540777A66f2cf297479745e0852f7A | Yes | Yes |
| KyberSwap | 0x6131B5fae19EA4f9D964eAc0408E4408b66337b5 | Yes | Yes |
| OpenOcean | 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 | Yes | Yes |
| FlyTrade | 0x20F6ee51340aDEed01A59B0e65cB3703f3dc860c | Yes | Yes |
| FlyTradeRouter | 0x956Df8424B556F0076E8abf5481605f5A791cc7f | Yes | Yes |
| Ramses router | 0x76D91074B46fF76E04FE59a90526a40009943fd2 | Yes | Yes |
| Kittenswap router | 0x4e73E421480a7E0C24fB3c11019254edE194f736 | Yes | Yes |
| HyperSwap router | 0x4E2960a8cd19B467b82d26D83fAcb0fAE26b094D | Yes | Yes |
| LI.FI | 0x0a0758d937d1059c356D4714e57F5df0239bce1A | Yes | Yes |
| 0x AllowanceHolder | 0x0000000000001fF3684f28c67538d4D072C22734 | Yes | Yes |
Your vault
You own your vault. The bot is its operator: it can manage the position through the executor, but it can never withdraw, change the owner, or send tokens anywhere except through the executor’s checked operations. Its pool, its two tokens and its fee ceilings are fixed when it is created. Changing the factory’s defaults later never changes a vault that already exists.
You never need TRUSS LP in order to withdraw. These are owner-only functions on your vault:
| Function | Effect |
|---|---|
| closeAll | Everything out in one transaction: every position unwound, every token and ETH sent to the address you give. |
| unwind | Unstakes a position, takes out all its liquidity and fees into your vault. No swap and no price check, so it works whatever the bot or the executor are doing. |
| exitAndSweep | Unwinds a position, then sends the tokens you list to the address you give. |
| exitPosition | Unstakes a position and sends the position NFT to the address you give, with its liquidity still inside. On Fables, where a position is not an NFT, it takes the position’s tokens out and sends them to that address. |
| withdraw / withdrawAll / sweepAll | Sends an amount of one token, all of one token, or all of each token you list. |
| withdrawETH | Sends ETH (or the chain’s gas token) held by the vault. |
| deposit / depositMany | Adds funds. |
| setOperator | Changes the bot, or removes it. |
| transferOwnership / acceptOwnership | Hands the vault to a new owner wallet in two steps. |
If the app is down, call these from your owner wallet on the chain’s explorer. Any network gas the vault still owes the bot is settled first when you withdraw; your own transactions are never billed.
Where funds can move
The diagram shows Base; every chain works the same way with that chain’s DEX. From your vault, funds can only move:
- Into the DEX, through the executor, to open, add to, stake, unstake and close positions. Removed liquidity and claimed rewards come back to the vault.
- To an allow-listed router during a swap. Only the pool’s own tokens can come back, they come back to the vault in the same transaction, and every swap must return at least a reference price from the previous block less the pool’s maximum loss.
- To the fee wallet, for the published fees only (see Fees) and the network gas of the bot’s own transactions, both capped by ceilings fixed in your vault when it was created.
- To your wallet, or any address you name, when you withdraw.
What you trust the owner wallet with
Each executor has an owner wallet (shown under each chain). Its changes take effect at once and are public transactions. It can:
- Swap safety: choose each pool’s reference price and maximum loss, the price window, and which routers vault swaps may use.
- Limits: set how often a vault can be rebalanced and each vault’s risk budget - the most its swaps and mints may lose against the reference price in any 12 hours and in any day.
- Fees and gas: set the executor’s fee ceilings (never above 20%) and the gas multiplier. Bot operations are still capped by your vault’s own ceilings.
- The bot: name operator managers, which can move your vault to a new bot, and keepers, which can lock bot operations for one vault or all of them.
- Return everything: send every position and token in a vault back to the vault’s owner - never anywhere else.
What the owner wallet can never do: withdraw from your vault to anyone but you, or block your exit. Closing a position and withdrawing work even while bot operations are locked.
The bot is a convenience, not a custodian. If it goes offline, your funds stay in a contract you own, and every withdrawal path works without it.