Skip to main content
kusd-mint issues kUSD, a stablecoin backed by a basket of whitelisted stables (USDC is the primary reserve). It includes a staking pool that distributes external yield and a T+1 intent mechanism for cross-stable swaps.

Instruction surface

Core (USDC path)

InstructionPurpose
initializeOne-time setup, creates MintConfig, kUSD mint, USDC reserve vault
mint_kusd(amount)Deposit USDC, receive kUSD 1:1
redeem_kusd(amount)Burn kUSD, withdraw USDC 1:1
freeze_account / thaw_accountOracle-driven risk controls

Multi-stable backing

InstructionPurpose
add_reserve(mint, weight_cap_bps)Whitelist an alternative stable (e.g. kamino.usd)
mint_kusd_with_backing(amount)Deposit any registered stable → kUSD
redeem_kusd_for_backing(amount)Burn kUSD → specific backing stable

Staking & yield distribution

InstructionPurpose
initialize_stake_poolSet up stake vault + reward vault
stake_kusd(amount)Lock kUSD, start earning
unstake_kusd(amount)Unlock (yield preserved)
fund_yield_pool(amount)Authorized caller pushes USDC rewards
claim_staking_yieldClaim accumulated USDC

T+1 cross-stable swaps

Liquidity across stables is finite. Kimia uses a two-phase intent:
InstructionPurpose
create_swap_intent(from_amount, to_mint)kUSD minted immediately; to_mint queued
settle_swap_intentAdmin crank marks intent settled after off-chain rebalance
claim_swap_intentUser claims to_mint, burns kUSD
rebalance_legs(from_amount, to_amount)Admin rebalances token vaults

Reserve yield

InstructionPurpose
deploy_reserves(amount)Lend idle USDC to an external yield manager
pull_vault_yield(principal, yield_amount)Return principal + route yield to stakers

Program IDs

Devnet addresses.