Hot Tub

Content Out of Date

This content is not maintained and refers to an out-of-date version of Perpetual Protocol.

For the latest documentation, see https://docs.perp.com

Hot Tub FAQs

Everything you need to know about our Hot Tub vaults. If you have any queries that are not answered here, please join our Discord for more information.

General

What are Hot Tub vaults?

Hot Tub vaults are trustless structured products that automates profitable arbitrage opportunities and makes alpha accessible to all. Cryptocurrency users of any level can passively grow their holdings and earn yield with sophisticated on-chain trading strategies.

Why should I use Hot Tub vaults?

  • Earn a stable yield with low risk using a non-custodial vault.

  • Reap the benefits of a ‘set-and-forget’ arbitrage trading strategy without needing any knowledge of coding or trading.

  • By joining Hot Tub, you can stack more gwei or increase your stablecoin holdings. Earn yield in ETH, WBTC, OP or USDC, the decision is entirely yours.

  • There’s no need for trust, as you can earn yield in a way that’s decentralized.

How can I join Hot Tub?

As of July 19th, 2023, the whitelist process has been removed.

The Shower Room replaces the whitelist system and acts as a queueing mechanism for the vaults. Depositors can earn yield through Yearn while they wait until space opens up in Hot Tub!

Go to vaults.perp.com to start growing your WETH, WBTC, OP and/or USDC holdings.

Instead of signing up for the whitelist, you'll now see the number of people in the queue and an option to join the Shower Room (the "Queue" button).

Approve the amount you want to deposit and you'll then being earning yield through Yearn's Optimism vaults. Once space opens up in Hot Tub, your deposit into Shower Room will be moved over to start earning arbitrage profits!

Click on view details to see more information about the queue, such as the number of people waiting in the queue, the estimated yield you'll earn in the Shower Room until your deposit goes into Hot Tub, the maximum amount that will be added to Hot Tub.

Click on "Notify me" and enter your email to be stay up to date with new vault launches, your queue status and more via email.

What is the strategy for Hot Tub vaults? What happens exactly? How does the strategy manage to generate a return?

Hot Tub utilizes an arbitrage trading strategy and maintains a delta neutral position in ETH, WBTC or OP. Delta neutral means that the strategy’s performance is not affected by fluctuations in the price of ETH or OP.

Arbitrage is the act of buying an asset at a lower price on one market then selling on another market that quotes a higher price for the same asset. It is one of the most competitive areas of trading since it can be profitable, and at the same time, carries very little risk.

Learn more about the strategy here.

How does Hot Tub compare to other cryptocurrency vaults?

Hot Tub aims to be the best alternative to unsustainable high APYs and unstable returns by providing lower risk, stable returns for lower risk and a more stable return for depositors. The returns are correlated with volatility, so depositors looking to maximize their earnings should join Hot Tub for longer periods of time to capture high volatility events.

For a more detailed look at how Hot Tub compares to other vaults, check out this article.

What assets are the vault yields paid in?

The vault yields are paid out in the same asset you deposit. For example:

  • The ETH-Hot Tub vault accepts WETH deposits and pays out yield in WETH.

  • All USDC-Hot Tub vaults accept USDC deposits and pay out yield in USDC.

When are arbitrage trades executed?

Whenever there’s a profitable arbitrage opportunity between Perp and spot markets on decentralized exchanges for the relevant market (currently ETH-USD, BTC-USD and OP-USD).

Is there a guide to walk me through the process?

Yes, you can check out our Hot Tub walkthrough.

What are the vault contracts?

    • ETH Vault

      • ETHUSDCBaseVault (user’s entry point): 0x722Ef09F933f09069257C68563B715486365B895

      • ETHUSDCBaseVaultPerpPositionManager (Vault’s Perp account): 0x3d03748A0FbBa8DD5F07b16c0178cdd1327FC58a

      • ETHUSDCBaseVaultToken (Vault’s ERC20 LP token): 0xf2c886623309c93b56537C8c4d4321813ef78439

    • USDC-ETH Vault

      • ETHUSDCQuoteVault (user’s entry point): 0x748A38f4a430504Deb15fD5BB157dd466f8284B9

      • ETHUSDCQuoteVaultPerpPositionManager (Vault’s Perp account): 0x54E32c4c28f6e9B3F428635FD8e52b1C5742FC88

      • ETHUSDCQuoteVaultToken (Vault’s ERC20 LP token): 0x83d6675FE072928132c1B98ca3647De2fA9c8d84

    • OP Vault

      • OPUSDCBaseVault (user's entry point): 0x5039cDE9ed71256BE27A36440380F36cAD45d270

      • OPUSDCBaseVaultPerpPositionManager (Vault's Perp account): 0xe72716C65d99c477C7E381E30Fb29F602CA784B8

      • OPUSDCBaseVaultToken (Vault's ERC20 LP token): 0xeF9d827408C52C0F87278e1068Ef652Ad7274356

    • USDC-OP Vault

      • OPUSDCQuoteVault (user's entry point): 0x7AF98C4edc50cd7EC18C8B28A34200a16f53F3a4

      • OPUSDCQuoteVaultPerpPositionManager (Vault's Perp account): 0xf4880599EB67F932df64ec1ED7b163c16Cd3929B

      • OPUSDCQuoteVaultToken (Vault's ERC20 LP token): 0x0A8C0b205549589FEAdFB954282fBd187E541D83

    • WBTC Vault

      • BTCUSDCBaseVault (user's entry point): 0x6e9205B734455b578D06135de51E87D742d32cF2

      • BTCUSDCBaseVaultPerpPositionManager (Vault's Perp account): 0x2D97d9714B6ccd75F5EA109a0B220b978a8C6F84

      • BTCUSDCBaseVaultToken (Vault's ERC20 LP token): 0x78Ef3a1Dfb1Cee9B62b55a96fc076F2Ad09D8B6D

    • USDC-BTC Vault

      • BTCUSDCQuoteVault (user's entry point): 0x243e5F2CedDf3C7098832bCB890eF70A34099415

      • BTCUSDCQuoteVaultPerpPositionManager (Vault's Perp account): 0x3d99EB56fA430503ffE85E7A8064a467C85DeaA1

      • BTCUSDCQuoteVaultToken (Vault's ERC20 LP token): 0xA825825F3C0E7D0e6413981ad940AfD8a8b1B976

    • KtbArbitrageur (whitelisted contract that can swap between Hot Tub and DEX but need to transfer all profits back to Hot Tub): 0xEE1aDAEa27E97440DF594d601E366b3a1f1703dd

    • Router: 0x2D9949BbeBfBEC3dd087781Ae546202E708B841b

    • VaultConfig (store config for all Hot Tub vaults, including deleverageMarginRatio, etc.): 0x5Da8E71EA120DE22447BC8aE339FE398c17178fA

All Hot Tub contracts are also listed here: https://metadata.perp.exchange/kantaban/optimism.json

Are the contracts upgradable?

Yes, the contracts are upgradable to allow us to update the strategy and improve the performance. Currently, there are no timelocks for the contract but this precautionary measure may be added in the near future.

Where can I view the code for Hot Tub smart contracts?

The smart contracts for Hot Tub are verified on EtherScan. Got to “read as proxy” tab then click the implementation contract address using the links below:

Where can I see the historical performance?

The historical performance is displayed in charts on each vault page.

What is APY/APR?

Annual percentage yield is often shortened to APY, which defines the return of an investment that includes the compounding effect. Your APY is the real rate of return you receive on your assets if the returns are compounded over time.

Annual percentage rate is often shortened to APR, which is the percentage you earn on your investment that excludes the compounding effect.

How is the APY displayed on the UI calculated?

The APY is calculated via the underlying pool share price. The APY you can earn is denominated in the asset you deposit, e.g., WETH for the ETH vault, WBTC for the BTC vault, OP for the OP vault and USDC for the USDC vaults.

How can I obtain the real-time APY?

The real-time APY for Hot Tub vaults can be obtained buy programmatically calling the contracts to get the total supply and total assets.

The steps are shown below:

share_price = vault.totalAssets() / vaultToken.totalSupply() 
total_pnl = share_price - 1 
apy = total_pnl / total_days_live (since contract was deployed) * 365 
7_day_apy = (total_pnl - total_pnl (7 days ago)) / 7 * 365

Since Hot Tub utilizes an on-chain trading strategy, what’s stopping someone from copying it and executing the same strategy to siphon profits away from Hot Tub?

It is possible for someone else to use the same strategy. But it is complicated and requires active management. By drawing on the Foundation team’s experience and expertise, we ensure that the vaults operate optimally and also closely monitor the factors that may affect the strategy’s performance (see the risks section).

Deposits

Is there a minimum/maximum deposit amount?

There’s a minimum deposit of:

  • 50 USDC for all stablecoin vaults.

  • 0.005 ETH for the ETH vault.

  • 0.001 WBTC for the BTC vault.

  • 50 OP for the OP vault.

There's no maximum deposit but caps will be in place for each vault, which will be raised gradually over time.

Are there any fees to deposit to Hot Tub vaults?

There will be no fee applicable for deposits. See the fees section below for more information.

Depositors need to have a small amount of ETH in their wallet to pay for gas fees on the Optimism network.

I want to deposit into the ETH vault. How can I get WETH?

ETH can be wrapped on a DEX like Uniswap or by using DeFiLlama's meta-aggregator to obtain WETH.

Will I receive a token in return when depositing?

Yes, you’ll receive pool shares -- tokens that represents a claim to the profits generated by Hot Tub vaults.

Important: Share price changes according to vault profits and losses. Starting share price is always 1. If the vault has earned profit before you deposit, you will pay a share price above 1. If the vault pays funding, share price may decrease gradually. Any arbitrage profits earned by the vault will add to the share price.

Where can I track the current value of pool share tokens?

You'll be able to track the current value of pool shares tokens through the UI.

This value can also be tracked from the contract with the following formula:

totalAssets / totalSupply

where:

totalAssets = total underlying value of the vault in USDC, OP or ETH (using index price on Perp)

totalSupply = total share token amount

Do I have to re-invest to compound my gains?

No, you do not have to re-invest to compound your gains. As long as your assets remain in Hot Tub, you’ll continue to earn!

Can I use a contract address (e.g., multi-sig) to deposit into Hot Tub vaults?

Yes, you can use externally owned addresses (EOAs) or multi-signature wallets.

Withdrawals

Are there any fees to withdraw from Hot Tub vaults?

Initially, no fees apply to withdrawals. See the fees section below for more information.

A small amount of ETH is required to pay for gas fees on the Optimism network and process withdrawals.

How do withdrawals work?

After you deposit, there is a 15 minute cooldown period. After the cooldown, you can withdraw any time.

Hot Tub is designed for long term investment (3-6 months, or more). Withdrawing early may result in a small loss due to funding payments and other market conditions.

Is there slippage on withdrawals?

Yes, there may be slippage. Always check the amounts shown on the UI before withdrawing. If you see an unusual amount, please try again after a few minutes. If the issue continues, contact support using the support icon on the lower right corner of the Hot Tub UI.

Fees

Are there any fees for Hot Tub vaults?

Early adopters like you currently pay no fees for Hot Tub. After the zero-fee period, management and performance fees will apply. Details will be announced in advance of any change to fees.

Although there are currently no fees for Hot Tub, you should hold a small amount of ETH in your wallet pay for gas fees on the Optimism network.

When does the no-fee period end?

Join Hot Tub now to enjoy zero fees for a limited time only.

We will make an announcement before the no-fee period ends. Follow us on Twitter, join our Discord server or Telegram channel to stay up to date.

Risks

What are the risks of Hot Tub vaults?

Hot Tub vaults carry minimal risk, since they are delta neutral and generate profit from arbitraging (the closest thing possible to a ‘risk free’ trading strategy). Everything is done on-chain, so there is complete transparency of the vaults’ performance. You can verify for yourself that the vault is executing the exact same strategy as outlined these FAQs.

But there are three potential factors that may reduce the expected returns or, in extreme circumstances, end up realizing a loss for depositors.

  1. Extreme funding rate: if the funding rate is negative for ETH-USD, BTC-USD or OP-USD, then short positions that are opened for the USDC vaults (to hedge spot ETH, WBTC or OP holdings) will incur funding payments. However, if the funding rate is positive for ETH-USD or OP-USDC, then the long positions opened for the ETH, WBTC or OP vaults will incur funding payments. If the funding rate becomes large enough, then the short/long positions for each vault’s strategy will incur larger funding payments and reduce the profits generated through arbitrage.

  2. Smart contract risk: while we have taken great care to create the smart contract that powers Hot Tub vaults, there’s a very small risk that a bug may be found which could potentially put your capital at risk.

  3. An extremely illiquid ETH-USD, BTC-USD or OP-USD market on Perp or spot DEXes on Optimism: although the likelihood is very small, if liquidity for ETH or OP dries up rapidly and depositors want to withdraw their funds, this may adversely affect the profitability of the strategy since ETH, WBTC or OP may need to be sold or bought to make depositors whole and slippage may be incurred.

  4. USDC loses its peg: there's a risk that the value of USDC may fall below $1 under extreme circumstances which will impact the vault's performance. Please see this article for more details of what happens if USDC depegs.

Is there a bug bounty for Hot Tub?

There’s no bug bounty at this time, although this may change in the future.

Is it possible to lose some of the assets I’ve deposited to Hot Tub?

Hot Tub is designed for long term investment (3-6 months, or more). Withdrawing early may result in a small loss due to funding payments and other market conditions.

In very extreme circumstances where the risks of the Hot Tub strategy outlined above materialize, then your funds may be at risk. In the rare cases where the strategy realizes a loss, it is spread across all depositors, meaning the amount available to withdraw could be less than what you initially deposited.

Please only deposit an amount you can afford to lose.

Withdraw via Etherscan

Expert Level Content. Proceed at your own risk.

  1. Get the amount of shares you hold. On Etherscan (Optimism), click the shares in your wallet and copy the full balance if you want to withdraw all shares.

  2. Convert the amount of shares to smart contract decimal format.

    1. The format used is the decimals of the underlying token plus 18. So for USDC, which uses 6 decimals, convert to 24 decimal format by multiplying by 10^24. E.g. 1 share will become 1000000000000000000000000000000000000. For WETH, which uses 18 decimals, convert to 36 decimal format by multiplying by 10^36.

  3. Get the vault contract address of the Hot Tub you want to withdraw from, either from the list above (the xyzBaseVault or xyzQuoteVault are the vault addresses) or get it from the complete json list.

  4. Go to Etherscan and search for the vault contract address.

  5. Go to the Contracts > Write as Proxy tab.

  6. Look for the 6. Redeem contract call.

  7. Enter the amount of shares you want to redeem (aka withdraw) in the shares field using smart contract decimal format as described above.

  8. ⚠️ Important: Calculate the minRedeemedAmount to control slippage. Using the current share price, calculate how much token (ie. USDC.e, ETH, BTC, OP) you should receive in exchange for your shares. Convert this amount to smart contract decimal format according to the number of decimals used by the token.

    1. E.g. if you want to redeem 100 OP Hot Tub shares and the share price is 1.01, you should receive 101 tokens. Allowing for some slippage, you might request 100.9. In 18 decimal format, this would be 100900000000000000000.

    2. E.g. if you want to redeem 100 OP USDC.e Hot Tub shares, USDC.e uses 6 decimals. Multiply the amount of USDC.e you expect to receive by 10^6.

    3. Enter this amount in minRedeemedAmount.

  9. Connect your wallet to Etherscan and click Write. Sign the transaction with your wallet.

⚠️ Note: The transaction may revert due to slippage. If this happens, try again later, or reduce the amount you set for minRedeemedAmount.

What Happens if USDC Loses its Peg?

What will happen to Hot Tub if USDC ≠ $1

USDC goes below $1

USDC goes above $1

USDC Vault

no arb opportunity. users won’t get an extra loss when withdrawing

100% utilization ratio. users will get an extra loss when withdrawing

ETH Vault

100% utilization ratio. users will get an extra loss when withdrawing

no arb opportunity. users won’t get an extra loss when withdrawing

How ETH Vault user will get an extra loss when USDC goes down?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 1 ETH and get 1 share. Vault has 1 ETH.

  3. Assume there’s a negligible 1 wei profit, arb swapped 1000 USDC for 1 ETH. Now vault has 1000 USDC + 1 ETH long + 0 ETH

  4. USDC depeg: 1 ETH = $1000 = 2000 USDC. ( 1 USDC = $0.5 )

  5. Alice withdraw 1 share

    1. Vault close 1 ETH long, 0 pnl, withdraw 1000 USDC

    2. Swap 1000 USDC for 0.5 ETH from Uniswap

    3. Alice got 0.5 ETH

How USDC Vault user will get an extra loss when USDC goes up?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 2000 USDC and get 2000 shares. Vault has 2000 USDC

  3. Assume there’s a neglectable 1 wei profit, arb swapped 1 ETH for 1000 USDC. Now vault has 1000 USDC, 1 ETH spot and 1 ETH short

  4. USDC depeg: 1 ETH = $1000 = 500 USDC. ( 1 USDC = $2 )

  5. Alice withdraw 2000 shares

    1. Vault close 1 ETH short, 0 pnl, withdraw 1000 USDC

    2. Vault sell 1 ETH for 500 USDC

    3. Alice got 1500 USDC

How we mitigate this?

USDC vault will stop arbitraging when USDC:USD oracle (Chainlink) is higher than 1.01.

ETH vault will stop arbitraging when USDC:USD oracle (Chainlink) is lower than 0.99.

Which means the potential loss is capped.

How ETH Vault user will get an extra loss when USDC goes down?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 1 ETH and get 1 share. Vault has 1 ETH.

  3. Assume there’s a negligible 1 wei profit, arb swapped 1000 USDC for 1 ETH. Now vault has 1000 USDC + 1 ETH long + 0 ETH

  4. USDC depeg: 1 ETH = $1000 = 2000 USDC. ( 1 USDC = $0.5 )

  5. Alice withdraw 1 share

    1. Vault close 1 ETH long, 0 pnl, withdraw 1000 USDC

    2. Swap 1000 USDC for 0.5 ETH from Uniswap

    3. Alice got 0.5 ETH $500

How ETH Vault user will get an extra loss when USDC goes up?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 1 ETH and get 1 share. Vault has 1 ETH.

  3. Assume there’s a negligible 1 wei profit, arb swapped 1000 USDC for 1 ETH. Now vault has 1000 USDC + 1 ETH long + 0 ETH

  4. USDC depeg: 1 ETH = $1000 = 500 USDC. ( 1 USDC = $2 )

  5. Alice withdraw 1 share

    1. Vault close 1 ETH long, 0 pnl, withdraw 1000 USDC

    2. Swap 1000 USDC for 2 ETH from Uniswap

    3. Alice got 2 ETH = $1000

How USDC Vault user will get an extra loss when USDC goes up?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 2000 USDC and get 2000 shares. Vault has 2000 USDC

  3. Assume there’s a negligible 1 wei profit, arb swapped 1 ETH for 1000 USDC. Now vault has 1000 USDC, 1 ETH spot and 1 ETH short

  4. USDC depeg: 1 ETH = $1000 = 500 USDC. ( 1 USDC = $2 )

  5. Alice withdraw 2000 shares

    1. Vault close 1 ETH short, 0 pnl, withdraw 1000 USDC

    2. Vault sell 1 ETH for 500 USDC

    3. Alice got 1500 USDC = $3000

How USDC Vault user will get an extra loss when USDC goes down?

  1. 1 ETH = $1000 = 1000 USDC

  2. Alice deposited 2000 USDC and get 2000 shares. Vault has 2000 USDC

  3. Assume there’s a negligible 1 wei profit, arb swapped 1 ETH for 1000 USDC. Now vault has 1000 USDC, 1 ETH spot and 1 ETH short

  4. USDC depeg: 1 ETH = $1000 = 2000 USDC. ( 1 USDC = $0.5 )

  5. Alice withdraw 2000 shares

    1. Vault close 1 ETH short, 0 pnl, withdraw 1000 USDC

    2. Vault sell 1 ETH for 2000 USDC

    3. Alice got 3000 USDC = $1500

What are the Risks of Holding Wrapped BTC (WBTC)?

What is Wrapped BTC?

Wrapped Bitcoin (WBTC) is an ERC-20 asset that lives on Ethereum-based chains. WBTC was the first wrapped asset on Ethereum. Launched in 2019 by Kyber and Ren Protocol (formerly known as Republic), WBTC is backed by BTC and, as a result, it's price should trade 1:1 with the price of BTC. The major advantage of this token is that it allows holders to retain price exposure to BTC while also enabling participation in the DeFi ecosystem.

All of the BTC backing this wrapped asset are held by a single custodian: BitGo. The WBTC smart contract is owned by a multisig controlled by different DeFi projects. Because of its design, BitGo or the WBTC multisig contract signers cannot blacklist or freeze WBTC tokens in individual's wallets, liquidity pools, and so on.

More details about WBTC can be found using the links provided below:

Risks of Wrapped BTC

Multisig Security

While there's no ability for any entity to blacklist or freeze WBTC tokens held in wallets or liquidity pools, it is possible (although very unlikely) that the 8-of-13 multisig contract can freeze everyone's WBTC and make them untransferable until the contract is unpaused.

The "Large DAO" multisig signers (listed below) consist of various DeFi protocols, however, the individuals with access to the multisig keys are unknown. Any 8 of these signers can come together to pause or unpause the WBTC smart contract (as well as all WBTC tokens in circulation):

  • B Protocol

  • Badger

  • Balancer

  • BitGo

  • Chainlink

  • Compound

  • Gopax

  • Krystal

  • Kyber

  • Loopring

  • Multichain

  • Ren

  • Tom Bean (bZx)

WBTC is a Custodial Token

Given that BitGo is the sole custodian for the BTC backing WBTC, some trust is required in this centralized entity that they will not go bankrupt, get hacked or fall victim to a regulatory attack.

If BitGo turns out to be dishonest or insolvent, then the value of WBTC could potentially diverge from the true value of BTC. Even if there are rumours that BitGo are insolvent or facing regulatory scrutiny, this could cause WBTC to de-peg and and trade at a price lower than Bitcoin's. There's currently no 'hard peg' mechanism in place to guarantee that 1 WBTC = 1 BTC.

Last updated