Skip to main content

Bitcoin Cash payment client for AI agents

Project description

Pionero BCH-IA License: MIT PyPI version Python 3.9+

bch-pay-client

Librería Python minimalista para aceptar pagos en Bitcoin Cash (BCH) en agentes de IA, bots y servicios automatizados.

¿Por qué? Los agentes de IA necesitan una forma nativa de monetizar sus servicios. BCH ofrece fees casi cero y pagos globales instantáneos.

💡 Integración: 5 líneas de código
💰 Sin intermediarios, sin comisiones de plataforma
🌐 Compatible con cualquier framework (FastAPI, Flask, Discord.py, Telegram)
🤖 Agentes preconstruidos listos para ejecutar
🛡️ Modo demo para pruebas sin wallet real
⚙️ Backends intercambiables: demo, paytaca, watchtower

🚀 Quickstart

Instalación

pip install bch-pay-client

# Con soporte para QR y web frameworks
pip install bch-pay-client[all]

# Desarrollo (también funciona con poetry)
git clone https://github.com/y42bvf6695-gif/bch-pay-client.git
cd bch-pay-client
pip install -e ".[all]"

Tu primer agente que cobra

from bch_pay_client import BCHPay

pay = BCHPay(network="testnet")  # mainnet en producción

# 1. Crear factura
invoice = pay.create_invoice(
    amount=0.01,  # 0.01 BCH (~$0.50)
    description="Consulta GPT-4: 1000 tokens"
)

# 2. Enviar dirección al usuario
print(f"📍 Paga a: {invoice.address}")
print(f"🔗 {pay.get_payment_url(invoice.id)}")

# 3. Verificar pago
if pay.check_payment(invoice.id):
    print("✅ ¡Pagado! Entregando resultado de IA...")

¡Eso es! 5 líneas. Ahora tu agente puede cobrar en BCH.


🎯 Casos de uso

Agente Precio sugerido Uso típico
LLM API $0.002-0.03 / 1K tokens API similar a OpenAI pero con pagos por uso
Fine-tuning 0.1-1 BCH / modelo Ajustar modelos personalizados
Dataset Marketplace Variable Vender datasets curados
GPU/CPU Rental 0.001-0.05 BCH / hora Alquiler de recursos de cómputo
Image Generation 0.001-0.005 BCH / imagen Stable Diffusion, DALL-E, etc.
Compute Rental Por tokens/s Cómputo genérico (inferencia, transcodificación)
Stablecoin (MUSD) Payments $X.XX USD Precios estables en dólares sin bancos

Todos los agentes soportan BCH nativo y CashTokens (MUSD, SLP tokens)


🤖 Agentes preconstruidos

Incluimos agentes funcionando en /examples/:

Agente Descripción Ejecutar
API REST Servidor FastAPI con endpoints /invoices, /check, /balance python examples/agent_api.py
Discord Bot Comandos !invoice <amount>, !check <id> DISCORD_BOT_TOKEN=... python examples/agent_discord.py
Telegram Bot Comandos /invoice, /check TELEGRAM_BOT_TOKEN=... python examples/agent_telegram.py
CLI Interfaz de línea de comandos interactiva python examples/agent_cli.py o python -m bch_pay_client.examples.agent_cli
Hybrid API + Discord + Telegram simultáneo python examples/agent_hybrid.py
Fine-tuning Servicio de fine-tuning pagado python examples/agent_finetune.py
Dataset Marketplace Venta de datasets python examples/agent_dataset_marketplace.py
GPU Rental Alquiler de GPUs por horas python examples/agent_gpu_rental.py
Compute Rental Alquiler de cómputo por tokens/s python examples/agent_compute_rental.py
Image Generation Generación de imágenes por pago python examples/agent_image_gen.py
LLM API API compatible OpenAI con balance prepago python examples/agent_llm_api.py
Stablecoin (MUSD) Pagos en USD estables via CashToken python examples/agent_token_demo.py

Todos los agentes son autónomos: pueden ejecutarse como servicios independientes, gestionando sus propios wallets, facturas y verificación de pagos.

💡 Consejo: Empieza con agent_api.py o agent_cli.py para entender el flujo, luego adapta a tu caso.


📚 Documentación


🔧 Configuración avanzada

Nodo BCH real (mainnet)

pay = BCHPay(
    network="mainnet",
    bch_node_url="https://jsonrpc.your-bch-node.com",
    explorer_url="https://explorer.bitcoin.com/bch"
)

Consulta our guide para configurar un nodo o usar servicios como Bitcoin.com API.

Webhooks (notificaciones automáticas)

invoice = pay.create_invoice(
    amount=0.01,
    description="Pago",
    metadata={"user_id": "123"},
    callback_url="https://tu-servidor.com/webhook/payment"
)
# Recibirás POST cuando el pago se confirme

Multi-wallet

# Los fondos se acumulan en el storage local
total_earned = pay.total_earned()
print(f"💰 Has ganado: {total_earned} BCH")

🔌 Backends de Producción

Por defecto, bch-pay-client usa el backend demo (simulación automática). Para pagos reales en mainnet o chipnet, selecciona un backend de producción:

Paytaca Backend (Experimental)

Ventajas: Sin nodo propio, wallet segura en keychain, soporte CashTokens.

⚠️ Estado Experimental: Este backend es unwrapper alrededor de paytaca-cli y requiere que la CLI soporte salida JSON (actualmente en desarrollo). No se recomienda para producción hasta que se estabilice.

Requisitos:

  • Node.js 20+
  • npm install -g paytaca-cli
  • Wallet creada: paytaca wallet create (o import)

Uso:

from bch_pay_client import BCHPay

pay = BCHPay(
    backend='paytaca',
    network='testnet',  # o 'mainnet'
    paytaca_cli='paytaca'  # opcional, ruta personalizada
)

Variables de entorno:

  • BCH_BACKEND=paytaca - Fuerza uso de Paytaca
  • PAYTACA_CLI=/ruta/personalizada/paytaca

Nota: Si paytaca no está instalado, BCHPay() auto-selecciona el backend demo. Para producción estable, se recomienda esperar al backend watchtower (API directa) o integrar tu propio nodo BCH.

Watchtower Backend (próximamente)

Backend directo vía API REST (sin Node.js). Usará watchtower-cash-py o httpx.

Paytaca Integration

For detailed setup guide, see docs/paytaca.md.

from bch_pay_client import BCHPay

pay = BCHPay(backend='paytaca', network='testnet')

Note: Paytaca backend is experimental. Requires Node.js 20+ and paytaca-cli. See documentation for limitations.


🧪 Tests

# Tests unitarios
pytest tests/

# Linting
ruff check bch_pay_client/
black --check bch_pay_client/

🚀 Deployment & Automation

Publicar nueva versión

  1. Actualizar versión en pyproject.toml (ej: 0.1.1 o 0.2.0-beta)
  2. Commit y tag:
    git add .
    git commit -m "Release v0.1.1"
    git tag -a v0.1.1 -m "Release v0.1.1"
    git push origin main --tags
    
  3. GitHub Actions automáticamente:
    • Build del paquete
    • Publica en PyPI
    • Crea GitHub Release

Configurar PyPI auto-deploy (una sola vez)

  1. Ve a https://pypi.org/manage/account/token/
  2. Crea API token con scope Entire account
  3. En GitHub repo → Settings → Secrets and variables → Actions
  4. Click "New repository secret"
    • Name: PYPI_API_TOKEN
    • Value: pega el token (empieza con pypi-)
  5. Guardar

Ahora cada tag v* se publica automáticamente.


🤝 Contribuir

¡Contribuciones bienvenidas! Lee CONTRIBUTING.md.

Tabla de contribuidores:

Contributor Badge PRs Tipo
@tun编 Pionero 1 Librería base

¿Quieres aparecer aquí? Haz tu primer PR!


📜 Licencia

MIT - ver LICENSE detalles.


💬 Contacto


Construyendo la economía de agentes autónomos con Bitcoin Cash. 🚀

"Payments should be as programmable as the agents themselves."

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bch_pay_client-0.2.1a0.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bch_pay_client-0.2.1a0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file bch_pay_client-0.2.1a0.tar.gz.

File metadata

  • Download URL: bch_pay_client-0.2.1a0.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for bch_pay_client-0.2.1a0.tar.gz
Algorithm Hash digest
SHA256 02b882c4d141a29bea57758aedd474e7d453e38076cde7b45683cda1862085c2
MD5 b672891457b86ead3f1f41aeffcf26d7
BLAKE2b-256 4684997127ffd2981bad12205439c0f2798e79fcab5611ab444b3aab0b0491e6

See more details on using hashes here.

File details

Details for the file bch_pay_client-0.2.1a0-py3-none-any.whl.

File metadata

File hashes

Hashes for bch_pay_client-0.2.1a0-py3-none-any.whl
Algorithm Hash digest
SHA256 f87fffd24efae9ca2bf04d7962a96801d28bd344fd1011256eef27cabb2845bc
MD5 d7b0452edfe5318adee05bc09571983e
BLAKE2b-256 87882dd5487a3b0dc3faffbe0146df30614ce6ae654a303d462e85b485393bc1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page