Chains
Solana (Devnet)

Solana — Devnet (Solend Yield)

Heron's primary chain. The Anchor program deploys on Solana devnet with real CPI into Solend's wSOL reserve.

Overview

ParameterValue
NetworkSolana Devnet
AssetwSOL (wrapped SOL)
VenueSolend (reserve 5VVLD7BQp8y3bTgyF5ezm1ResyMTR3PhYsT4iHFU8Sxz)
ProgramBSPwK2zXA4K887pbm5ovxzVQS2rWJAaQkkiEU3TRY632
Yield sourceBorrower utilization (~1.27% supply APY)
Decimals9 (native SOL precision)

How It Works

  1. User connects Solana wallet via Reown AppKit
  2. Deposits wSOL → vault PDA created per-user (non-custodial)
  3. Keeper runs 5-min cycles, evaluates via Net-Edge gate
  4. On approval: Solend CPI deposit — real cTokens received
  5. Exchange rate ~1.06 proves real yield accrual

Vault Program (heron-vault)

The Anchor program at BSPwK2zXA4K887pbm5ovxzVQS2rWJAaQkkiEU3TRY632 provides:

Instructions

InstructionDescription
initialize_policySet mandate root, caps, position limits
initialize_vaultCreate vault, link to policy, set executor
depositUser moves wSOL into vault
withdrawUser moves wSOL out (never blocked)
executeAgent allocates into Solend (Merkle-verified, cap-checked, nonce-guarded)
deallocateAgent redeems from Solend (same Merkle proof, skips caps)
emergency_exitOwner sweeps all venues back to idle in one tx
set_pausedKill switch (freezes agent, never blocks withdrawal)

Timelock

  • queue_venue_add — propose new venue with delay
  • queue_caps_increase — propose raising caps with delay
  • Sentinel can veto queued changes (never raise them)

Solend Integration

The vault performs real Cross-Program Invocation (CPI) into Solend's lending protocol:

execute instruction
  → Merkle proof verification (venue whitelisted?)
  → Cap check (per-action, epoch, position)
  → Nonce + expiry check (replay guard)
  → Solend CPI: deposit wSOL into reserve
  → Receive cTokens (claim on deposited capital + accrued interest)

Deployment

# Build and deploy the program
cd packages/solana
anchor build
anchor deploy --provider.cluster devnet
 
# Run keeper for Solana
cd app/backend
HERON_NETWORK=solana uv run python keeper_run.py --execute

Environment Variables

HERON_SOLANA_RPC=https://devnet.helius-rpc.com/?api-key=YOUR_KEY
HERON_SOLANA_KEYPAIR=~/.config/solana/heron-solana-vault-owner.json