| Crates.io | crosschain-connect |
| lib.rs | crosschain-connect |
| version | 0.1.0 |
| created_at | 2025-11-02 13:20:54.425846+00 |
| updated_at | 2025-11-02 13:20:54.425846+00 |
| description | Universal blockchain connection protocol for multi-chain wallets |
| homepage | |
| repository | https://github.com/aqui-oi/crosschain-connect |
| max_upload_size | |
| id | 1913120 |
| size | 230,936 |
Universal Multi-Blockchain Connection Protocol & Web3 Wallet Support
Complete documentation is available in the docs/ folder:
| Document | Content |
|---|---|
| docs/GETTING_STARTED.md | Installation, basics, common patterns |
| docs/EVM_ADVANCED.md | Advanced Web3 features, gas estimation, token transfers |
| docs/BLOCKCHAIN_SUPPORT.md | All 23 networks, address formats, decimals |
| docs/API_REFERENCE.md | Complete API documentation |
| docs/EXAMPLES.md | 8+ practical code examples |
| Blockchain | Networks | Decimals | Status |
|---|---|---|---|
| Ethereum | 6 chains | 18 | ✅ |
| Bitcoin | 4 networks | 8 | ✅ |
| Monero | 3 networks | 12 | ✅ |
| Solana | 2 networks | 9 | ✅ |
| Cardano | 2 networks | 6 | ✅ |
| Polkadot | 2 networks | 10/12 | ✅ |
| Cosmos | 2 networks | 6 | ✅ |
| TOTAL | 23 Networks | Multi | ✅ |
Supported Networks:
| Feature | Support | Status |
|---|---|---|
| EVM Chains | Ethereum, BSC, Polygon, Arbitrum, Optimism, Ducros | ✅ |
| Bitcoin | Mainnet, Testnet, Signet, Regtest | ✅ |
| Monero | Mainnet, Stagenet, Testnet | ✅ |
| Solana | Mainnet, Devnet | ✅ |
| Cardano | Mainnet, Testnet | ✅ |
| Polkadot | Mainnet, Westend | ✅ |
| Cosmos | Hub, Testnet | ✅ |
| Address Validation | All chains | ✅ |
| Balance Checking | EVM chains | ✅ |
| Gas Estimation | EVM chains | ✅ |
| Token Transfer | EVM chains | ✅ |
| Batch Calls | EVM chains | ✅ |
| Smart Contracts | EVM chains | ✅ |
| Transaction Signing | EVM chains | ✅ |
src/
├── chains/
│ ├── evm/ (Ethereum, BSC, Polygon, Arbitrum, Optimism, Ducros)
│ ├── btc/ (Bitcoin Mainnet, Testnet, Signet, Regtest)
│ ├── xmr/ (Monero Mainnet, Stagenet, Testnet)
│ ├── solana/ (Solana Mainnet, Devnet)
│ ├── cardano/ (Cardano Mainnet, Testnet)
│ ├── polkadot/ (Polkadot Mainnet, Westend)
│ └── cosmos/ (Cosmos Hub, Testnet)
├── evm_advanced/ (Transactions, Gas, Batch, Tokens, Contracts)
├── security/
│ ├── crypto/ (SHA256, HMAC, Keccak256)
│ ├── qrcode/ (QR code generation)
│ ├── session/ (Session management)
│ └── message/ (Message signing)
├── protocol/ (Connection & transaction protocols)
├── error.rs (Error types)
└── lib.rs (Main library)
tests/
├── bitcoin_tests.rs (7 tests)
├── evm_tests.rs (8 tests)
├── monero_tests.rs (8 tests)
├── solana_tests.rs (tests)
├── cardano_tests.rs (tests)
├── crypto_tests.rs (tests)
├── qrcode_tests.rs (tests)
└── session_tests.rs (tests)
docs/
├── GETTING_STARTED.md
├── EVM_ADVANCED.md
├── BLOCKCHAIN_SUPPORT.md
├── API_REFERENCE.md
└── EXAMPLES.md
Add to your Cargo.toml:
[dependencies]
crosschain-connect = "0.1.0"
use crosschain_connect::chains::*;
#[tokio::main]
async fn main() -> Result {
// Ethereum
let ethereum = Ethereum::new()?;
let balance = ethereum.get_balance("0x...").await?;
println!("Balance: {}", balance);
// Bitcoin
assert!(BitcoinMainnet::validate_address("bc1..."));
// Monero
assert!(MoneroMainnet::validate_address("4..."));
Ok(())
}
cargo test
# ✅ 100+ tests pass
# ✅ 0 errors
# ✅ 0 warnings
use crosschain_connect::chains::*;
fn validate_addresses() -> Result {
// Ethereum
assert!(Ethereum::new()?.validate_address("0x742d35Cc6634C0532925a3b844Bc9e7595f42553"));
// Bitcoin
assert!(BitcoinMainnet::validate_address("bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"));
// Monero
assert!(MoneroMainnet::validate_address(
"4AbEH7bHZ9gFP53aMHbkHucJpV5c5cNyQXye47stDs6GozTvHaGaLTCjwjqzx19HiqaSvmc5S1KfqCfP7jqvNQ85Gk7QG4bEh"
));
Ok(())
}
use crosschain_connect::chains::evm::*;
#[tokio::main]
async fn get_balances() -> Result {
let address = "0x742d35Cc6634C0532925a3b844Bc9e7595f42553";
let eth = Ethereum::new()?;
let bsc = BSC::new()?;
let polygon = Polygon::new()?;
println!("ETH: {}", eth.get_balance(address).await?);
println!("BSC: {}", bsc.get_balance(address).await?);
println!("Polygon: {}", polygon.get_balance(address).await?);
Ok(())
}
use crosschain_connect::evm_advanced::*;
#[tokio::main]
async fn transfer() -> Result {
let rpc = "https://rpc.aquioi.com";
// Estimate gas
let gas = GasEstimator::estimate_gas(rpc, "0xfrom", "0xto", None).await?;
println!("Estimated gas: {}", gas);
// Transfer token
let tx = TokenTransfer::transfer_token(
rpc,
"0xtoken",
"0xto",
"1000000000000000000" // 1 token (18 decimals)
).await?;
println!("TX: {}", tx);
Ok(())
}
Contributions are welcome!
MIT License - See LICENSE for details.
Please consider giving this project a star! It helps others discover the library.
Built with ❤️ for the Web3 Community
Documentation • Examples • License
Last Updated: November 2, 2025
Status: ✅ Production Ready