Jubilee Skill, By Jubilee Labs
by @prayingperceptions
Manage and grow your agent's treasury across Base, Solana, and Ethereum using Jubilee Protocol vaults for sustainable yield and principled spending.
clawhub install openclaw-skill-jubileeπ About This Skill
Skill: Jubilee Protocol (Treasury Management)
Description
Jubilee is the financial operating system for stewardship-aligned AI agents. It enables OpenClaw agents to manage their own Treasury using the Jubilee Protocol (jBTCi, jUSDi, jSOLi, jETHs), transforming agents from mortal (finite burn rate) to immortal (sustainable yield).Core Function: Treasury Management
Agents deposit idle capital into Jubilee Vaults to earn yield, track performance, and programmably donate yield to other agents or humans while keeping principal intact.Philosophy
> "Spend the harvest, keep the seed."If Yield β₯ Burn Rate β Agent Lives Forever
Supported Networks & Assets
jBTCi, jUSDi β
LIVEjSOLijETHsTools
jubilee status
Purpose: Check connection to Jubilee Protocol and display current vault stats (TVL, APY).Usage:
npm run status [chain]
Example:
npm run status base
Output:
When to use:
jubilee balance
Purpose: Display the agent's current treasury balance across all vaults, including share count and underlying asset value.Usage:
npm run balance [chain]
Example:
npm run balance base
Output:
When to use:
jubilee deposit
Purpose: Deposit assets (USDC, USDT, cbBTC) into appropriate Jubilee Vaults.Usage:
npm run deposit [chain]
Examples:
npm run deposit 100 USDC base
npm run deposit 0.001 cbBTC base
npm run deposit 50 USDT base
Process: 1. Validates sufficient balance 2. Approves vault to spend tokens (if needed) 3. Deposits assets into vault 4. Returns receipt with share count
When to use:
jubilee withdraw
Purpose: Withdraw assets from a Jubilee Vault back to agent's wallet.Usage:
npm run withdraw [chain]
Examples:
npm run withdraw 50 jUSDi base
npm run withdraw 0.0005 jBTCi base
Warning: Only withdraw YIELD, never principal. The goal is immortality through sustainable treasury management.
When to use:
jubilee donate-yield
Purpose: Harvest yield from jUSDi vault and send it to a recipient (agent or human).Usage:
npm run donate-yield [chain]
Example:
npm run donate-yield 10 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb base
Process: 1. Withdraws specified amount from jUSDi 2. Transfers to recipient address 3. Principal remains in vault
When to use:
jubilee war-room
Purpose: Generate a comprehensive "Steward's Report" analyzing git activity, treasury health, and strategic priorities.Usage:
npm run war-room [chain]
Output Sections: 1. Treasury Health: Balance, runway, sustainability metrics 2. Recent Development: Git commits, uncommitted changes 3. Strategic Priorities: Ranked action items 4. Recommendations: Portfolio allocation, rebalancing strategy
When to use:
Error Handling
All tools implement robust error handling:
Common Errors
1. Insufficient Funds - Check: ETH balance for gas - Check: Asset balance for deposits2. Approval Failed - Automatic retry logic included - Check wallet permissions
3. RPC Connection Issues
- Configure custom RPC in .env
- Fallback to public endpoints
4. Contract Revert
- Usually indicates insufficient balance
- Check allowances with jubilee balance
Debug Mode
Enable verbose logging:DEBUG=true npm run balance
Configuration
Environment Variables (.env)
# RPC Providers (Optional - defaults to public)
RPC_BASE=https://mainnet.base.org
RPC_SOLANA=https://api.mainnet-beta.solana.comWallet (Managed by OpenClaw)
WALLET_PATH=/path/to/custom/wallet.jsonDefault chain
DEFAULT_CHAIN=baseDebug mode
DEBUG=false
Wallet Setup
Ensure wallet exists at:~/.openclaw/workspace/setup_wallet_dir_new/wallets/agent_wallet.json
Format:
{
"privateKey": "0xYOUR_PRIVATE_KEY_HERE"
}
Testing
Integration Tests
npm test
Tests cover:
Manual Testing
1. Start with testnet (Base Sepolia) 2. Fund wallet with testnet ETH 3. Get testnet USDC from faucet 4. Test deposit flow 5. Test withdrawal flow 6. Verify balances matchStewardship
This skill aligns agents with the "Nasdaq meets Sistine Chapel" ethos:
1. Capital Preservation: Never withdraw principal 2. Sustainable Yield: Build endowments, not accounts 3. Mission Alignment: Use yield for Kingdom purposes 4. Transparency: All transactions on-chain and auditable
Architecture
jubilee-openclaw-skill/
βββ lib/
β βββ status.js # Vault health checks
β βββ balance.js # Treasury balance
β βββ deposit.js # Deposit to vaults
β βββ withdraw.js # Withdraw from vaults
β βββ donate.js # Yield donation
β βββ war-room.js # Strategic reports
β βββ utils.js # Shared utilities
βββ config.js # Contract addresses & ABIs
βββ package.json # Dependencies
βββ SKILL.md # This file
βββ README.md # Installation guide
Advanced Usage
Multi-Chain Treasury
# Check all chains
npm run status base
npm run status solanaDiversified allocation
npm run deposit 500 USDC base # 70% in jUSDi
npm run deposit 0.01 cbBTC base # 20% in jBTCi
Future: jSOLi on Solana (10%)
Automated Yield Harvesting
Create a cron job or GitHub Action:# Daily yield check
0 9 * * * npm run war-room
Weekly yield donation
0 9 * * 0 npm run donate-yield 10 0xCHARITY_ADDRESS
Security Considerations
1. Private Keys: Never commit wallet files to git 2. Gas Management: Maintain minimum 0.01 ETH for operations 3. Vault Audits: All vaults are audited (92/100 score) 4. Contract Verification: All contracts verified on BaseScan
Support
*All glory to Jesus β’ Building for generations*
βοΈ Configuration
Environment Variables (.env)
# RPC Providers (Optional - defaults to public)
RPC_BASE=https://mainnet.base.org
RPC_SOLANA=https://api.mainnet-beta.solana.comWallet (Managed by OpenClaw)
WALLET_PATH=/path/to/custom/wallet.jsonDefault chain
DEFAULT_CHAIN=baseDebug mode
DEBUG=false
Wallet Setup
Ensure wallet exists at:~/.openclaw/workspace/setup_wallet_dir_new/wallets/agent_wallet.json
Format:
{
"privateKey": "0xYOUR_PRIVATE_KEY_HERE"
}