crosschain-connect 0.1.0

Universal blockchain connection protocol for multi-chain wallets
Documentation
# 🚀 CrossChain Connect

> **Universal Multi-Blockchain Connection Protocol & Web3 Wallet Support**

[![Rust](https://img.shields.io/badge/Rust-1.70+-ff6b14.svg?style=flat-square)](https://www.rust-lang.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](LICENSE)
[![Tests](https://img.shields.io/badge/Tests-100%2B%20Passing-brightgreen.svg?style=flat-square)]()
[![Production Ready](https://img.shields.io/badge/Status-Production%20Ready-brightgreen.svg?style=flat-square)]()

<div align="center">

### Connect to 7 Blockchains with a Single API

**[23 Networks](#-blockchains-supported) • [5 EVM Modules](#-evm-advanced-features) • [100+ Tests](#-tests) • [Production Ready](#-production-ready)**

[Installation](#-installation) • [Quick Start](#-quick-start) • [Documentation](#-documentation) • [Examples](#-examples)

</div>

## 📚 Documentation

Complete documentation is available in the `docs/` folder:

### Core Guides

| Document | Content |
|----------|---------|
| **[docs/GETTING_STARTED.md]docs/GETTING_STARTED.md** | Installation, basics, common patterns |
| **[docs/EVM_ADVANCED.md]docs/EVM_ADVANCED.md** | Advanced Web3 features, gas estimation, token transfers |
| **[docs/BLOCKCHAIN_SUPPORT.md]docs/BLOCKCHAIN_SUPPORT.md** | All 23 networks, address formats, decimals |
| **[docs/API_REFERENCE.md]docs/API_REFERENCE.md** | Complete API documentation |
| **[docs/EXAMPLES.md]docs/EXAMPLES.md** | 8+ practical code examples |

## 📊 Blockchains Supported

| 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** | **** |

### 🔗 7 Blockchains, 23 Networks

**Supported Networks:**
- 🌐 **Ethereum** - Ethereum, BSC, Polygon, Arbitrum, Optimism, Ducros (6 chains)
-**Bitcoin** - Mainnet, Testnet, Signet, Regtest (4 networks)
- 🔐 **Monero** - Mainnet, Stagenet, Testnet (3 networks)
-**Solana** - Mainnet, Devnet (2 networks)
- 💎 **Cardano** - Mainnet, Testnet (2 networks)
-**Polkadot** - Mainnet, Westend (2 networks)
- ⚛️ **Cosmos** - Hub, Testnet (2 networks)

## 🏆 Features at a Glance

| 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 ||

## 🏗️ Architecture

```
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
```

## 🚀 Quick Start

### 1️⃣ Installation

Add to your `Cargo.toml`:

```toml
[dependencies]
crosschain-connect = "0.1.0"
```

### 2️⃣ Basic Usage

```rust
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(())
}
```

### 3️⃣ Run Tests

```bash
cargo test
# ✅ 100+ tests pass
# ✅ 0 errors
# ✅ 0 warnings
```

## 💡 Examples

### Validate Addresses

```rust
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(())
}
```

### Get EVM Balance

```rust
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(())
}
```

### Estimate Gas & Transfer Token

```rust
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(())
}
```

## 🤝 Contributing

Contributions are welcome! 

## 📄 License

MIT License - See [LICENSE](LICENSE) for details.

## ⭐ If You Find This Useful

Please consider giving this project a star! It helps others discover the library.

---

<div align="center">

**Built with ❤️ for the Web3 Community**

[Documentation](docs/) • [Examples](docs/EXAMPLES.md) • [License](LICENSE)

*Last Updated: November 2, 2025*

**Status: ✅ Production Ready**

</div>