Skip to content

oxymrn/klima-pt-vaults

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Klima Prize USDC

A Klima × PoolTogether partnership product on Base: a no-loss prize vault where USDC depositors earn lossless prize-shaped yield, with 5% of yield routed to the Klima Carbon Auto-Retirement Bot to permanently retire tokenized carbon credits.

The vault is a standard PoolTogether V5 PrizeVault deployed via the existing audited PrizeVaultFactory — no custom Solidity required. This repo contains the deploy script and a fork-simulation test.

Live deployment

Vault address: 0x07487Bc9a55d5FaA43894b2014CaaC4EC7fA37b4 on Base mainnet

Deploy transaction: 0xd2008b11c37ebaa7b35ed3683f27a52278fc8d5d3f8d2a95e25f9605301477b9

Source verified on Basescan via bytecode Exact Match against PT V5's PrizeVault contract.

What it does

Property Value
Underlying asset USDC (native, on Base)
Yield source Moonwell Flagship USDC (MetaMorpho ERC4626)
Prize pool PT V5 on Base (prize token: WETH)
Yield fee 5% (in PT's 1e9-precision basis: 5e7)
Yield fee recipient Klima Carbon Auto-Retirement Bot
Owner Klima multisig on Base
Vault name / symbol "Klima Prize USDC" / kpzUSDC

Depositors deposit USDC, the vault routes it to Moonwell Flagship USDC for yield, and 95% of accrued yield is auctioned to arbitrageurs in exchange for WETH (which funds PoolTogether's shared prize pool — depositors win WETH prizes). 5% accrues to the Klima retirement bot for periodic carbon credit retirements.

Depositors can withdraw 100% of their USDC principal at any time. Lossless.

Why this design

  • USDC underlying. Stablecoin denomination removes principal volatility. Depositors keep dollar-denominated value while earning prize-shaped yield.
  • Moonwell Flagship USDC as yield source. Highest natively-ERC4626 USDC yield on Base (~4.1% APY at time of deployment), curated by Block Analitica and B.Protocol, $9.8M+ in TVL. Mature, conservative, well-allocated.
  • 5% fee to retirement. A meaningful but non-disruptive slice — depositors retain 95% of yield as prize odds while still funding measurable carbon retirement on every yield liquidation.
  • No custom Solidity. The vault is deployed via PT's audited factory. Every line of contract logic powering this product has been independently audited as part of PT V5 itself.

Addresses

All addresses are on Base mainnet (chain ID 8453).

Contract Address
PoolTogether V5 PrizeVaultFactory 0xa55a74A457D8a24D68DdA0b5d1E0341746d444Bf
PoolTogether V5 PrizePool 0x45b2010d8A4f08b53c9fa7544C51dFd9733732cb
PoolTogether V5 Claimer 0xcdCE635b774DE77cdF791647601dba64a75547ba
USDC (native) 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Moonwell Flagship USDC 0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca
Klima Carbon Auto-Retirement Bot 0xfB7eF581B0338A31e47AA9770345b26D46BF0451
Klima Vault Owner (multisig) 0xa79cd47655156b299762DFE92A67980805ce5a31

Sources:

Repo layout

  • script/DeployKlimaPrizeUsdcVault.s.sol — Foundry deploy script
  • test/DeployKlimaPrizeUsdcVault.t.sol — fork simulation test
  • foundry.toml — Foundry config

Validation

Two layers of validation backstop the deploy:

1. Local fork simulation in this repo. Runs the full deploy logic against current Base mainnet state, fakes a USDC balance for the deployer, executes the PrizeVaultFactory.deployVault call, and asserts every parameter on the resulting vault.

forge test --fork-url https://mainnet.base.org \
  --match-test test_DeploysVaultSuccessfully -vvv

2. Upstream PoolTogether integration test for the same yield source. PT's own test suite (pt-v5-vault/test/integration/morpho-vaults/MorphoMoonwellUsdcBase.t.sol) includes a 12-test suite that runs deposits, withdrawals, multi-user flows, yield accrual, fee handling, edge cases, and loss simulation against this exact Moonwell Flagship USDC yield source. All 12 tests pass at the time of this writing — no integration questions remain.

A passing local test combined with the upstream test suite confirms:

  • All addresses resolve to live, responsive contracts
  • The factory accepts the parameter set we pass
  • The deployed vault has the expected asset, yield source, prize pool, fee, fee recipient, and owner
  • The yield source supports the full lifecycle of vault operations (deposit, withdraw, mint, redeem, yield accrual, loss handling)

Deployment

The deploy script signs transactions via a Foundry encrypted keystore. First, set up the keystore for the deployer wallet:

cast wallet import deployer --interactive

This prompts for the deployer's private key and a password. The key is stored encrypted at ~/.foundry/keystores/deployer.

Then run the deploy:

forge script script/DeployKlimaPrizeUsdcVault.s.sol:DeployKlimaPrizeUsdcVault \
  --rpc-url https://mainnet.base.org \
  --account deployer \
  --sender 0xYourDeployerAddress \
  --broadcast

Foundry will prompt for the keystore password at signing time.

Pre-deploy requirements

  • Deployer wallet holds at least the factory's YIELD_BUFFER of USDC (1e5 units = $0.10) — permanently consumed on deploy as a vault stability reserve
  • Deployer wallet holds enough ETH for gas (~0.0005 ETH on Base is plenty)
  • Klima multisig confirms the owner address in the script is correct

Post-deploy

  1. Verify the vault contract on Basescan
  2. Submit to the Cabana vaultlist for frontend listing at app.cabana.fi
  3. Coordinate launch comms with Klima

Climate framing

At 5% yield fee with USDC lending APRs around 4%, the vault retires roughly 0.2% of TVL annually. For every $1M of TVL, this funds ~$2,000/year of tokenized carbon credit retirements via the Klima Auto-Retirement Bot.

The vault itself will be attributed the environmental impact by Klima's Auto-Retirement Bot. Every dollar deposited contributes to ongoing carbon retirements.

The retirement is real, the volume is meaningful at scale, and the framing should be consistent with the actual math.

Roadmap

This USDC vault is V1 of the Klima × PoolTogether partnership. Planned next phases:

  • Cabana frontend listing — submit to the default vaultlist post-deploy
  • klimalabs.com integration — partnership-branded landing page on Klima's ecosystem tooling site, alongside the auto-retire bot dashboard
  • Green Bitcoin Prize Vault (gBTC) — a cbBTC-denominated companion vault for BTC holders who want to earn carbon-positive yield on their BTC. Lower current APY than USDC but cyclically scales with BTC bull markets. Subject to partnership decision.

Status

Step Status
Deploy script ✅ Complete
Fork simulation ✅ Passes against Base mainnet state
Upstream integration test (Moonwell Flagship USDC) ✅ Passes (12/12)
Klima multisig confirmation ✅ Confirmed
Deployer wallet funding ✅ Funded
Mainnet deploy ✅ Live at 0x07487Bc9a55d5FaA43894b2014CaaC4EC7fA37b4

Built with

About

Klima x PoolTogether prize vault deployment -- carbon retiring USDC vault on Base

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors