Democratizing Bitcoin Asset Investments through Smart Risk Management"
- High gas fees and complex transaction processes on Bitcoin's native chain discourage retail investors from investing in Runes & BRC-20s.
- Limited accessibility to diversified Bitcoin asset portfolios
- Complex bridging mechanisms between Bitcoin and Layer 2 solutions.
- Lack of risk-adjusted investment options for different investor profiles
- High barrier to entry for new users wanting to invest in Bitcoin assets
OneClickBTCInvestments simplifies Bitcoin asset investments through smart basket technology and seamless cross-chain integration. We leverage Layer 2 solutions (Rootstock & BOB) and implement ERC-7621 standard to create risk-adjusted, diversified portfolios of Bitcoin assets.
-
Risk-Categorized Investments
- Degen (High Risk/High Reward)
- Moderate (Balanced)
- Conservative (Low Risk/Stable)
-
Smart Basket Technology
- ERC-7621 compliant token baskets
- Automated weight rebalancing
- Customizable portfolio allocation
-
Cross-Chain Integration
- Seamless Bitcoin ↔ Rootstock bridging
- Bitcoin ↔ BOB Chain integration
- tBTC v2 integration for trustless bridging
-
User-Friendly Interface
- One-click investment process
- Telegram bot integration
- Real-time portfolio tracking
- For Users
- Simplified investment process
- Risk-adjusted returns
- Lower transaction costs Diversified exposure to Bitcoin assets
- For Ecosystem
- Increased L2 liquidity
- Greater adoption of Bitcoin assets
- Enhanced cross-chain interoperability
graph TD
A[User] --> B[Frontend Interface]
B --> C[Smart Basket Controller]
C --> D[ERC-7621 Contracts]
D --> E[BOB Gateway]
D --> F[Rootstock Bridge]
E --> G[Bitcoin Network]
F --> G
D --> H[tBTC v2 Bridge]
H --> G
ERC-7621 Contracts Deployed on BOB
Factory -> https://bob-sepolia.explorer.gobob.xyz/address/0x4354D9CC11b924731D98295cc127046b33aAf5a9?tab=contract BasketTokenStandardPair -> https://bob-sepolia.explorer.gobob.xyz/address/0x588A3Ed0668CfDDe1Ba6ECfb916aD85991F86BAb?tab=contract BTS -> https://bob-sepolia.explorer.gobob.xyz/address/0xeB1a6776dcD5CaC0Edf8255932529bD29aB3d80B Proxy -> https://bob-sepolia.explorer.gobob.xyz/address/0x7ff5536298278eF663E045F89E1eC8D7D093b211?tab=txs
ERC-7621 Contracts on Rootstock
Factory - https://explorer.testnet.rootstock.io/address/0x5CDcCD7aD5989f5B32497d243d4274E213f4B6D2 BasketTokenStandardPair -> https://explorer.testnet.rootstock.io/address/0xdf479F9Ac656861f164cFE8a8B78D971c74659ca BasketTokenStandard -> https://explorer.testnet.rootstock.io/address/0xeB1a6776dcD5CaC0Edf8255932529bD29aB3d80B
- Smart Basket Controller
- Manages basket creation and rebalancing
- Implements risk assessment algorithms
- Handles weight distributions
const quoteParams: GatewayQuoteParams = {
fromChain: "Bitcoin",
fromToken: "BTC",
fromUserAddress: "tb1qrpdxac4tx7atld37stgmt3ywfjk76efd9050rl",
toChain: "bob-sepolia",
toUserAddress: "0xCCBb7511D2b13939b86C2C784eA86ef17B927d76",
toToken: "0x6744babdf02dcf578ea173a9f0637771a9e1c4d0",
amount: 100, // 0.001 BTC
gasRefill: 1000,
}
- ERC-7621 Implementation
- Basket token standard
- LP token management
- Weight adjustments
contract BasketTokenStandard is ERC721URIStorageUpgradeable {
using SafeERC20Upgradeable for IERC20Upgradeable;
uint private _autoRebalanceTime;
address public btsPair;
address public owner;
address public factory;
bool public autoRebalanceEnabled;
uint256 public upperLimit;
uint256 public lowerLimit;
string description;
mapping(address => bool) private _isTokenPresent;
struct TokenDetails {
address[] tokens;
uint[] weights;
}
TokenDetails private _tokenDetails;
modifier checkLength(uint lengthOne, uint lengthTwo) {
if (lengthOne != lengthTwo) revert InvalidLength();
_;
}
modifier onlyOwner() {
if (ownerOf(0) != msg.sender) revert InvalidOwner();
_;
}
event ContributedToBTS(address bts, address sender, uint amount);
event WithdrawnFromBTS(
address bts,
address sender,
address[] tokens,
uint[] amounts
);
event WithdrawnETHFromBTS(address bts, address sender, uint amount);
event RebalanceBTS(
address bts,
address[] tokens,
uint[] oldWeights,
uint[] newWeights
);
event UpdatedUpperLimit(uint indexed upperLimit);
event UpdatedLowerLimit(uint indexed lowerLimit);
event UpdatedAutoRebalanceEnabled(bool _autoRebalanceEnabled);
function initialize(
string memory _name,
string memory _symbol,
address _owner,
address _factory,
address[] memory _tokens,
uint[] memory _weights,
address _btsPair,
string memory _tokenURI,
bool _enableAutoRebalance,
string memory _description
) external checkLength(_tokens.length, _weights.length) initializer {
__ERC721_init(_name, _symbol);
owner = _owner;
factory = _factory;
_checkValidTokensAndWeights(_tokens, _weights);
btsPair = _btsPair;
_tokenDetails.tokens = _tokens;
_tokenDetails.weights = _weights;
autoRebalanceEnabled = _enableAutoRebalance;
_autoRebalanceTime = block.timestamp;
description = _description;
upperLimit = 10500;
lowerLimit = 9500;
_mint(_owner, 0);
_setTokenURI(0, _tokenURI);
}
- Cross-Chain Bridge Integration
- BOB Gateway for Bitcoin → BOB chain transfers
- Threshold BTC for trustless Bitcoin → Ethereum bridges
- Custom bridge interfaces for Rootstock integration
- Portfolio Management
- Automated rebalancing
- Risk assessment
- Performance tracking
function calculateShareETH(
uint _amountLP
) public view returns (uint amountETH) {
for (uint i = 0; i < reserves.length; ) {
amountETH += Helper.getAmountsOut(
(_amountLP *
IERC20Upgradeable(tokens[i]).balanceOf(address(this))) /
totalSupply(),
Helper.getPath(tokens[i], Constants.WETH)
);
unchecked {
++i;
}
}
}
function calculateShareTokens(
uint _amountLP
) public view returns (uint[] memory amountTokens) {
amountTokens = new uint[](tokens.length);
for (uint i = 0; i < reserves.length; ) {
amountTokens[i] =
(_amountLP *
IERC20Upgradeable(tokens[i]).balanceOf(address(this))) /
totalSupply();
unchecked {
++i;
}
}
}
-
User Investment Flow
- Connect wallet
- Select risk category
- Choose investment amount
- Receive LP tokens representing basket share
-
Behind the Scenes
- Smart contract validates investment
- Assets are bridged using BOB Gateway/tBTC
- ERC-7621 contracts create basket tokens
- Automatic weight distribution based on risk profile
-
Portfolio Management
- Regular rebalancing checks
- APR calculations
- Risk assessment updates through telegram bot
- Real-time performance monitoring
The system leverages several key technologies:
- Smart Contracts: ERC-7621 implementation for basket management
- Bridges: BOB Gateway and tBTC v2 for cross-chain transactions
- Risk Assessment: Proprietary algorithms for portfolio optimization
- Frontend: React-based interface with Web3 integration
- Monitoring: Telegram bot integration for real-time updates
- Mobile app development
- Additional L2 integrations
- Advanced portfolio analytics
- DAO governance implementation
- Automated investment strategies
We welcome contributions! Please check our contribution guidelines and feel free to submit pull requests.
MIT License
This project aims to bridge the gap between traditional Bitcoin holders and the emerging world of Bitcoin assets, making investments more accessible, secure, and user-friendly.