Skip to content

Jubilee-Protocol/jBTCi-on-Base

Repository files navigation

jBTCi - The Bitcoin Index Fund

Built on Base Powered by Yearn Donate Crypto

A passive, diversified Bitcoin strategy that automatically rebalances between WBTC and cbBTC while capturing arbitrage opportunities.

Website: https://jbtci.xyz
App: https://mint.jbtci.xyz
Contract: 0x8a4C0254258F0D3dB7Bc5C5A43825Bb4EfC81337
Status: πŸš€ LIVE on Base Mainnet β€” Upgraded Jan 18, 2026


Overview

jBTCi maintains a 50/50 allocation between WBTC and cbBTC, automatically rebalancing when allocations drift beyond 2%. The strategy captures arbitrage profits during rebalancing, generating 6-10% target APY for depositors.

Key Features

  • Passive Strategy - Set it, forget it, earn BTC
  • Diversified - 50/50 WBTC/cbBTC allocation
  • Secure - Multi-layered circuit breakers, dual oracles
  • Efficient - 100% capital efficiency on Base

Frontend Features

πŸ“Š FASB Fair Value Dashboard

  • Quarterly and custom date range reporting
  • Holdings table with real-time fair value
  • Unrealized gain/loss calculations
  • CSV export for accountants (FASB ASU 2023-08 compliance)

πŸ›οΈ Treasury Mode (Multi-Signature Accountability)

  • For church treasuries and organizations
  • Safe wallet integration via Safe Apps SDK
  • "Two signatures on a check" messaging
  • Step-by-step Safe creation guide

Safe Apps Integration βœ…

jBTCi is fully compatible with Safe (formerly Gnosis Safe) for multi-signature treasury management.

Features:

  • βœ… Auto-connects when opened inside Safe
  • βœ… Multi-sig transaction flow
  • βœ… No separate wallet connection needed
  • βœ… Works with Base mainnet and testnet

Setup:

  1. Go to app.safe.global
  2. Open your Safe on Base
  3. Click Apps β†’ My custom apps β†’ Add
  4. Enter: https://mint.jbtci.xyz
  5. Click Add (accept the disclaimer)
  6. Open jBTCi from Safe - it auto-connects!

Multi-Sig Workflow:

  1. One signer initiates deposit/withdrawal
  2. Other signers approve in Safe
  3. Transaction executes after threshold reached

Security


Contract Addresses

Base Mainnet

Contract Address
jBTCi Strategy 0x8a4C0254258F0D3dB7Bc5C5A43825Bb4EfC81337
cbBTC 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf
WBTC 0x0555E30da8f98308EdB960aa94C0Db47230d2B9c

Base Sepolia (Testnet)

Contract Address
jBTCi Strategy 0x43814Da4b3CB4344395A85afF2325282A43cbda6
cbBTC (Mock) 0x0D1feA7B0f63A9DA5b0dA89faFfBb56192d7cd93
WBTC (Mock) 0x5ed96C75f5F04A94308623A8828B819E7Ef60B1c

Repository Structure

jBTCi-on-Base/
β”œβ”€β”€ contracts/
β”‚   β”œβ”€β”€ YearnJBTCiStrategy.sol   # Main strategy
β”‚   β”œβ”€β”€ JubileeTimelock.sol      # 24hr governance
β”‚   └── lib/                     # Yearn V3 base strategy
β”œβ”€β”€ deploy/
β”‚   β”œβ”€β”€ DeployJBTCi_Mainnet.js   # Production deployment
β”‚   └── DeployJBTCi_Testnet.js   # Testnet with mocks
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ ADMIN_GUIDE.md           # Admin functions
β”‚   └── AUDIT_REPORT.md          # Security audit
β”œβ”€β”€ frontend/                    # Next.js web app
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ FASBDashboard.tsx    # Fair value reporting
β”‚   β”‚   β”‚   └── TreasuryMode.tsx     # Safe integration
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”‚   └── useSafeApps.ts       # Safe Apps SDK hook
β”‚   β”‚   β”œβ”€β”€ providers.tsx        # RainbowKit config
β”‚   β”‚   └── page.tsx             # Main app
β”‚   └── public/
β”‚       └── manifest.json        # Safe Apps manifest
└── README.md

Quick Start

# Install
npm install

# Compile contracts
npx hardhat compile

# Run frontend locally
cd frontend && npm run dev

# Build for production
cd frontend && npm run build

Maintenance Mode

During maintenance, mainnet deposits/withdrawals are disabled but testnet (Base Sepolia) remains available for testing. Switch to Base Sepolia in your wallet to test functionality.


Changelog (Jan 7-17, 2026)

Contract Fixes

  • βœ… Jan 17: Fixed critical tokenizedStrategyAddress pointing to testnet instead of mainnet
  • βœ… Mainnet redeployment: 0x8a4C0254258F0D3dB7Bc5C5A43825Bb4EfC81337
  • βœ… Fixed critical double-counting bug in _calculateTotalHoldings()
  • βœ… Fixed same bug in getAllocationDetails()
  • βœ… Testnet redeployment: 0x43814Da4b3CB4344395A85afF2325282A43cbda6

Test Suite (100% Pass Rate)

  • βœ… scripts/stress_test.js - 11/11 applicable tests
  • βœ… scripts/integration_test.js - 8/8 tests
  • βœ… scripts/fuzz_test.js - 165/165 random input tests

Frontend Improvements

  • βœ… One-time infinite approval (no repeated approval popups)
  • βœ… Error handling for cancelled/failed transactions in toast
  • βœ… FASB Dashboard now network-aware (mainnet/testnet)
  • βœ… Mobile viewport fixes for MetaMask browser
  • βœ… Safe Apps SDK manifest updates for multi-sig support

Security

  • βœ… Comprehensive audit: 92/100 score
  • βœ… Audit report: contracts/AUDIT_REPORT.md

Built By

Jubilee Labs β€’ Powered by Yearn V3 β€’ Deployed on Base

License

This project is licensed under the MIT License.


"Seek first the Kingdom of God!" β€” Matthew 6:33