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

Explorer: Basescan · Owner wallet of every TRUSS LP contract below: 0xf9eE…C2F1

ContractVenueAddressSource
Vault executor
TrussAtomicB1
Aero0x865D8CAB29E4003B9B512e2121FdC1660d66B1D3Verified
Vault factory
TrussVaultFactoryB1
Aero0xd505a36bD8e51E468e24e27bCE63d1a5BF775205Verified
Vault implementation
TrussVaultB1
Aero0xcA36F6bF60E7FF9FF930e0734c63EB2bAc6BBdA5Verified
Sale router (best AERO price)
TrussSaleRouter
Receipt cycle0x03e325125d239c0e48c8cc533044fd0b636e13eeVerified
TrussCycle (receipt cycle)
TrussCycle
Receipt cycle0xa864C53bcEEf15BA098e0605ce0D40ED18d2Fa6fVerified
Dust sweeper
DustSweeper
Swaps0x65897F150389c94d9cC696fF6c65fC54dD5C6Ae1Verified
TRUSS AGG executor
BaseAggExecutor
Swaps0xF98B66F54CE0A29f23B5D67024695F45807C622DVerified
Libraries (3) - code the executors and factories call into; they hold nothing
ContractVenueAddressSource
AeroLpLib (library)
AeroLpLib
Aero0x99e49053407a8252112870a3e1c79319Abdef1AEVerified
GuardLib (library)
GuardLib
Aero0xa6c1D3D4fAfd5c5a4601Ad8e1EE82D6608919525Verified
VaultGasLib (library)
VaultGasLib
Aero0x81104d0d24B3167422FB608755CEFC34b8fA0cffVerified
Routers vault swaps can use on Base (14)

OP Mainnet chain ID 10

Explorer: OP Etherscan · Owner wallet of every TRUSS LP contract below: 0xf9eE…C2F1

ContractVenueAddressSource
Vault executor
TrussAtomicB1
Aero0x7785A9aa795887AAA483cf52Df5f77446055442BVerified
Vault factory
TrussVaultFactoryB1
Aero0xd6A23EAaC6FF894e327519AD91B2Fad638266f7BVerified
Vault implementation
TrussVaultB1
Aero0x737B40813e189519Ef7dFB5fB56a2da22d26c97aVerified
Receipt buyer (xAERO)
TrussReceiptBuyer
Aero0x3F2a6Fc007D9Ab1692434aDEa9950afa884BdE74Verified
Dust sweeper
DustSweeper
Swaps0x92B3A0a9b95C0C2fC8baFeCe97563C39769d92bBVerified
Libraries (3) - code the executors and factories call into; they hold nothing
ContractVenueAddressSource
AeroLpLib (library)
AeroLpLib
Aero0xA4476D535299Fe4ADa56b1533D2537E1999Abb4DVerified
GuardLib (library)
GuardLib
Aero0xFDCa340485675Db2cc0b9E2869A058ABF816C3a7Verified
VaultGasLib (library)
VaultGasLib
Aero0x38d60943cF6af94d6793cd29AB3598F0ab3ac9c0Verified
Routers vault swaps can use on OP Mainnet (8)

Robinhood Chain chain ID 4663

Explorer: Robinhood Chain Blockscout · Owner wallet of every TRUSS LP contract below: 0xf9eE…C2F1

ContractVenueAddressSource
Vault executor
TrussAtomicB1
Aero (Robinhood)0xC042CA170fF7a7456ABe9D9E0ddf9aC1cAA6a859Verified
Vault factory
TrussVaultFactoryB1
Aero (Robinhood)0xc4bd16C4E762e1289fc468EeaEe4e7eA47775B98Verified
Vault implementation
TrussVaultB1
Aero (Robinhood)0xf3c6F988b65e1D92e8e49f034375F95BCC36CE47Verified
Vault executor
TrussAtomicFB1
Fables0xF8D0AC0E83BeA460684eBE2cb398668748526E7fVerified
Vault factory
TrussVaultFactoryFB1
Fables0xa8afBD03602dc044C4Fd7b2231216AB3104A0f38Verified
Vault implementation
TrussVaultFB1
Fables0x3C69349D771B19D74ea123b9ffBfb678B8d7B5bfVerified
Vault executor
TrussAtomicGG1
GIGA0xE0011C722B276ae65AaC6B00B31836C2603B0A27Verified
Vault factory
TrussVaultFactoryGG1
GIGA0x2Ff790D1d1A0cEAeCd340F60d601B0cA22757D35Verified
Vault implementation
TrussVaultGG1
GIGA0xe55F05831921dd9b6C9a8CEFEe1c9085B6e09d04Verified
Vault executor
TrussAtomicRM1
Ramses (Robinhood)0xE61dA2Be475aA793b7A967B3EDf46fE612Ca0C32Verified
Vault factory
TrussVaultFactoryRM1
Ramses (Robinhood)0xFa179DE68D711360EcF9EAE2E4f9b1b78F5f34AaVerified
Vault implementation
TrussVaultRM1
Ramses (Robinhood)0xCd139d87C4f003b0a293882215f4b663D76845a7Verified
Vault executor
TrussAtomicRS1
Raphael0x244aDf93052D1BF7079Ce869a2F98ba64181a08EVerified
Vault factory
TrussVaultFactoryRS1
Raphael0xdfB916FF892a2e9BC43f36e9a584f36c2E28eeb0Verified
Vault implementation
TrussVaultRS1
Raphael0x3b7bF4f0d0619f27A984A259Af252Fc3aEfa48e3Verified
Vault executor
TrussAtomicRS1
UP330x7785A9aa795887AAA483cf52Df5f77446055442BVerified
Vault factory
TrussVaultFactoryRS1
UP330x7158B5D77cD54f78a536e3Ace28299fd5a7609a6Verified
Vault implementation
TrussVaultRS1
UP330x7796fF73fb199d86b8eF117347257EeBA21a1771Verified
Receipt buyer (xAERO)
TrussReceiptBuyer
Aero (Robinhood)0xdCa74b9078d0d6f2E3fa2319c2d21aF8De4Bbf11Verified
Pool view factory
FablesViewFactory
Fables0x24081dDe83aE3242e4CcaE6033b9868302941e54Verified
Position reader (lens)
RamsesNfpmLens
Ramses (Robinhood)0x7f4A75f10BD19D9c79BE5D5e1de50ec2A795B74bVerified
Dust sweeper
DustSweeper
Swaps0x89d10cB24D8AC48BB525e7c35dFE5ea4f6Da4E53Verified
TRUSS AGG executor
TrussAggExecutor
Swaps0x2f38660092D220f0D4F621F8922abB5aEeF6af13Verified
Libraries (17) - code the executors and factories call into; they hold nothing
ContractVenueAddressSource
AeroLpLib (library)
AeroLpLib
Aero (Robinhood)0x3Bdd72D0A918dE9F4dE4f6dB573De7e1189D2589Verified
GuardLib (library)
GuardLib
Aero (Robinhood)0xe3E0D1Cf31402cf2Dc156dF7826f176d474AaA2fVerified
L1 fee oracle
ArbL1FeeOracle
Aero (Robinhood)0x67FE531A04776D7ddf9A8f5452f62eC4314Ee2A6Verified
VaultGasLib (library)
VaultGasLib
Aero (Robinhood)0xd0De6B050B5Fb2B1AD92593eb63108a547e3efC0Verified
FbVaultLib (library)
FbVaultLib
Fables0x508D86dC63362209CAff041542764c1CaE6489f8Verified
GuardLib (library)
GuardLib
Fables0xAaE49E7a179018F9873441bD4C79d42331691866Verified
RhFablesLpLib (library)
RhFablesLpLib
Fables0xa1B828EE82B84d3c1E8739a10D23767B1ad25bcCVerified
VaultGasLib (library)
VaultGasLib
Fables0x04F95Ec57cA958432EFf4e686dd011b0B0c1ABD6Verified
GuardLib (library)
GuardLib
GIGA0xd318D50A3eaBDbCb3B196cB9242808420B634160Verified
RhGigaLpLib (library)
RhGigaLpLib
GIGA0x16274DaaFa3Ec27524775191fd03B782de319f40Verified
VaultGasLib (library)
VaultGasLib
GIGA0xa3bd5C5Ed54FD4F8e52629D6ad307B3708B4959BVerified
GuardLib (library)
GuardLib
Ramses (Robinhood)0x2584eB443D387E4d8B0CEa7efb97374B115AcC7aVerified
RhRamLpLib (library)
RhRamLpLib
Ramses (Robinhood)0xa9c3C568890AfF606D841999B1EF8E1a673a7ad9Verified
VaultGasLib (library)
VaultGasLib
Ramses (Robinhood)0x941191dc22D4AA3eADB16bCD4887454F543A48D1Verified
GuardLib (library)
GuardLib
UP33 / Raphael0xFDCa340485675Db2cc0b9E2869A058ABF816C3a7Verified
RhSlipLpLib (library)
RhSlipLpLib
UP33 / Raphael0xA4476D535299Fe4ADa56b1533D2537E1999Abb4DVerified
VaultGasLib (library)
VaultGasLib
UP33 / Raphael0x38d60943cF6af94d6793cd29AB3598F0ab3ac9c0Verified
Routers vault swaps can use on Robinhood Chain (12)

HyperEVM chain ID 999

Explorer: HyperEVMscan · Owner wallet of every TRUSS LP contract below: 0xf9eE…C2F1

ContractVenueAddressSource
Vault executor
TrussAtomicHY1
Hybra0x76C6BdBebEc33e5B97Bd029Da38280edD39D48DEVerified
Vault factory
TrussVaultFactoryHY1
Hybra0x7B2a713082CeddB4ac7F05A33e13C1D38e1F2C6BVerified
Vault implementation
TrussVaultHY1
Hybra0x0278d5a4cf43B745C2bCda05Fb74d17B709f82a4Verified
Vault executor
TrussAtomicRM1
Ramses (HyperEVM)0x3F97cB184a5ff12e567581BFbD8f03b60F1585AAVerified
Vault factory
TrussVaultFactoryRM1
Ramses (HyperEVM)0x6940112e98ca5D3CeB5a369e4b6744AD2554a84EVerified
Vault implementation
TrussVaultRM1
Ramses (HyperEVM)0x93fe178C9CCdD6414A6e498d75B3D0138516D99fVerified
Dust sweeper
DustSweeper
Swaps0x81cf7bA56EC2E2F6BC009C7799B1dd8c7f12578CVerified
Libraries (6) - code the executors and factories call into; they hold nothing
ContractVenueAddressSource
GuardLib (library)
GuardLib
Hybra0x2d22b4ba55b781cf4832927d83A323c0f9505471Verified
HybraLpLib (library)
HybraLpLib
Hybra0x7158B5D77cD54f78a536e3Ace28299fd5a7609a6Verified
VaultGasLib (library)
VaultGasLib
Hybra0x667C18f11332530514cB640323edf16CE9E37591Verified
GuardLib (library)
GuardLib
Ramses (HyperEVM)0x7785A9aa795887AAA483cf52Df5f77446055442BVerified
RamsesLpLib (library)
RamsesLpLib
Ramses (HyperEVM)0xd6A23EAaC6FF894e327519AD91B2Fad638266f7BVerified
VaultGasLib (library)
VaultGasLib
Ramses (HyperEVM)0xE4E1Ae77376A39B9b534809E04BDC8802D041BfeVerified
Routers vault swaps can use on HyperEVM (10)

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:

FunctionEffect
closeAllEverything out in one transaction: every position unwound, every token and ETH sent to the address you give.
unwindUnstakes 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.
exitAndSweepUnwinds a position, then sends the tokens you list to the address you give.
exitPositionUnstakes 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 / sweepAllSends an amount of one token, all of one token, or all of each token you list.
withdrawETHSends ETH (or the chain’s gas token) held by the vault.
deposit / depositManyAdds funds.
setOperatorChanges the bot, or removes it.
transferOwnership / acceptOwnershipHands 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

Your walletowner of the vaultYour vaultholds your fundsVault executorchecked operations onlyFee walletreceives fees onlyAeropools · gauges · positionsSwap routersallow-listed, swaps onlyKyberSwap1inchFlyTradeLI.FIVeloraSushiAeroUniswapPancakeSwapdepositwithdrawwithin one transactionmint · stake · close · claimswapmanager feeyour capital: wallet, vault, Aero, a router mid-swap, or the executor within one txmanager fee: 10% of AERO claimed + 0.01% of what a bot rebalance or exit removes
Your capital moves only between your wallet, your vault and the approved venues. The fee wallet receives fees and nothing else. A TRUSS share vault also pays 30% of its AERO to the TRUSS VAULT, as TRUSSV to your wallet.

The diagram shows Base; every chain works the same way with that chain’s DEX. From your vault, funds can only move:

  1. 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.
  2. 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.
  3. 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.
  4. 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.