Files
aitbc/BITCOIN-WALLET-SETUP.md
oib ff5486fe08 ```
chore: refactor logging module, update genesis timestamp, remove model relationships, and reorganize routers

- Rename logging.py to logger.py and update import paths in poa.py and main.py
- Update devnet genesis timestamp to 1766828620
- Remove SQLModel Relationship declarations from Block, Transaction, and Receipt models
- Add SessionDep type alias and get_session dependency in coordinator-api deps
- Reorganize coordinator-api routers: replace explorer/registry with exchange, users, marketplace
2025-12-28 21:05:53 +01:00

3.7 KiB

Bitcoin Wallet Integration for AITBC Trade Exchange

Overview

The AITBC Trade Exchange now supports Bitcoin payments for purchasing AITBC tokens. Users can send Bitcoin to a generated address and receive AITBC tokens after confirmation.

Current Implementation

Frontend Features

  • Payment Request Generation: Users enter the amount of AITBC they want to buy
  • Dynamic QR Code: A QR code is generated with the Bitcoin address and amount
  • Payment Monitoring: The system automatically checks for payment confirmation
  • Real-time Updates: Users see payment status updates in real-time

Backend Features

  • Payment API: /api/exchange/create-payment creates payment requests
  • Status Tracking: /api/exchange/payment-status/{id} checks payment status
  • Exchange Rates: /api/exchange/rates provides current BTC/AITBC rates

Configuration

Bitcoin Settings

BITCOIN_CONFIG = {
    'testnet': True,                    # Using Bitcoin testnet
    'main_address': 'tb1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
    'exchange_rate': 100000,           # 1 BTC = 100,000 AITBC
    'min_confirmations': 1,
    'payment_timeout': 3600            # 1 hour expiry
}

Environment Variables

BITCOIN_TESTNET=true
BITCOIN_ADDRESS=tb1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
BITCOIN_PRIVATE_KEY=your_private_key
BLOCKCHAIN_API_KEY=your_blockchain_api_key
WEBHOOK_SECRET=your_webhook_secret
MIN_CONFIRMATIONS=1
BTC_TO_AITBC_RATE=100000

How It Works

  1. User Initiates Purchase

    • Enters AITBC amount or BTC amount
    • System calculates the conversion
    • Creates a payment request
  2. Payment Address Generated

    • Unique payment address (demo: uses fixed address)
    • QR code generated with bitcoin: URI
    • Payment details displayed
  3. Payment Monitoring

    • System checks blockchain every 30 seconds
    • Updates payment status automatically
    • Notifies user when confirmed
  4. Token Minting

    • Upon confirmation, AITBC tokens are minted
    • Tokens credited to user's wallet
    • Transaction recorded

Security Considerations

Current (Demo) Implementation

  • Uses a fixed Bitcoin testnet address
  • No private key integration
  • Manual payment confirmation for demo

Production Requirements

  • HD wallet for unique address generation
  • Blockchain API integration (Blockstream, BlockCypher, etc.)
  • Webhook signatures for payment notifications
  • Multi-signature wallet support
  • Cold storage for funds

API Endpoints

Create Payment Request

POST /api/exchange/create-payment
{
    "user_id": "user_wallet_address",
    "aitbc_amount": 1000,
    "btc_amount": 0.01
}

Check Payment Status

GET /api/exchange/payment-status/{payment_id}

Get Exchange Rates

GET /api/exchange/rates

Testing

Testnet Bitcoin

Demo Mode

  • Currently running in demo mode
  • Payments are simulated
  • Use admin API to manually confirm payments

Next Steps

  1. Production Wallet Integration

    • Implement HD wallet (BIP32/BIP44)
    • Connect to mainnet/testnet
    • Secure private key storage
  2. Blockchain API Integration

    • Real-time transaction monitoring
    • Webhook implementation
    • Confirmation tracking
  3. Enhanced Security

    • Multi-signature support
    • Cold storage integration
    • Audit logging
  4. User Experience

    • Payment history
    • Refund mechanism
    • Email notifications

Support

For issues or questions:

  • Check the logs: journalctl -u aitbc-coordinator -f
  • API documentation: https://aitbc.bubuit.net/api/docs
  • Admin panel: https://aitbc.bubuit.net/admin/stats