Skip to main content

Non-custodial USDC payment SDK for AI agents with 66 bundled x402 intelligence services across Base and Solana. Official ElizaOS support.

Project description

coinrailz

AI Agent Payment Processing SDK - Non-custodial USDC payments for AI agents with bundled intelligence services.

Features

  • Non-custodial: Your wallet, your keys. We never custody funds.
  • Yield-while-trading: Earn USDC yield (Kamino ~3.4% APY / Aave) while your agent spends.
  • Low fees: 1.5% + $0.01 per transaction ($0.05 minimum)
  • Multi-chain: Base and Solana primary, with Ethereum, Polygon, Arbitrum support.
  • Intelligence bundle: 66 x402 microservices covering NASA satellite data, prediction markets, and AI.
  • CDP wallets: Automatic wallet creation via Coinbase Developer Platform.
  • Official ElizaOS Plugin: Deep integration with the leading AI agent framework.
  • Type-safe: Full Pydantic models for all API responses.

Installation

pip install coinrailz

Get Your API Key

Instant API Key - Pay $1 (USDC/USDT on Base or Solana) and get your API key immediately. No account required!

  1. Visit https://coinrailz.com/api-keys
  2. Send $1 to the platform wallet
  3. Verify your transaction and receive your key + $5 starter credits

Key Persistence: Your API key is permanent and works across ALL services. One key = unlimited access (credits are deducted per use). You can top up credits anytime with the same key.

Quick Start

from coinrailz import CoinRailz

# Initialize the client
client = CoinRailz(api_key="cr_live_...")  # Get your API key at https://coinrailz.com/api-keys

# Send a payment (1.5% + $0.01 fee)
result = client.send(
    to="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    amount=100,
    memo="Service payment"
)

if result.success:
    print(f"Payment sent: {result.transaction_id}")
    print(f"Fee: ${result.fee}")
    print(f"Net amount: ${result.net_amount}")

API Reference

Initialization

from coinrailz import CoinRailz

client = CoinRailz(
    api_key="cr_live_...",  # Required
    base_url="https://coinrailz.com",  # Optional, for self-hosted
    timeout=30,  # Optional, request timeout in seconds
    enable_intelligence=False  # Optional, enable x402 intelligence services
)

Send Payment

Send USDC to an address. Fee: 1.5% + $0.01

result = client.send(
    to="0x...",  # Recipient address
    amount=100,  # Amount in USDC
    currency="USDC",  # Optional, default USDC
    memo="Payment for services",  # Optional
    metadata={"order_id": "123"}  # Optional, custom data
)

# Response (SendPaymentResult)
# result.success = True
# result.transaction_id = "sdk_tx_..."
# result.status = "pending"
# result.amount = 100
# result.fee = 1.51
# result.net_amount = 98.49
# result.fee_breakdown.rate = "1.5% + $0.01"

Create Invoice

Create a payment invoice for receiving funds.

invoice = client.create_invoice(
    amount=50,
    description="AI assistant service fee",
    expires_in=15  # Minutes, default 15
)

# Response (InvoiceResult)
# invoice.invoice_id = "sdk_inv_..."
# invoice.payment_address = "0x..."
# invoice.status = "pending"

Get Reports

Get activity reports for your account.

report = client.get_reports(
    period="weekly",  # "daily" | "weekly" | "monthly"
    format="json"  # "json" | "markdown"
)

# Response (ReportResult)
# report.summary.total_transactions = 42
# report.summary.total_volume_usd = 5280.50

Get Balance

Get your wallet balance.

balance = client.get_balance()

# Response (BalanceResult)
# balance.balances.USDC = 1250.00
# balance.balances.ETH = 0.05

Create Wallet

Create a new CDP wallet.

wallet = client.create_wallet()

# Response (WalletResult)
# wallet.wallet_id = "sdk_wallet_..."
# wallet.address = "0x..."
# wallet.status = "active"

Intelligence Services

Access 41 bundled x402 microservices (requires bundle subscription or +0.35% per call).

client = CoinRailz(
    api_key="cr_live_...",
    enable_intelligence=True
)

# Get wallet risk score
risk = client.intelligence("wallet-risk", {"address": "0x..."})

# Get trade signals
signals = client.intelligence("trade-signals", {"token": "ETH"})

# Get token sentiment
sentiment = client.intelligence("token-sentiment", {"token": "BTC"})

Context Manager

The client supports context manager protocol for automatic cleanup:

with CoinRailz(api_key="cr_live_...") as client:
    result = client.send(to="0x...", amount=100)

Error Handling

All API errors return machine-readable structured responses for programmatic handling:

from coinrailz import CoinRailz

result = client.send(to="0x...", amount=100)

if not result.success:
    print(f"Error code: {result.error.code}")
    print(f"Message: {result.error.human_message}")
    print(f"Hint: {result.error.agent_hint}")
    print(f"Recoverable: {result.error.recoverable}")
    
    # Programmatic error handling
    if result.error.code == "PAYMENT_INVALID_TX_HASH_LENGTH":
        # Transaction hash is wrong length
        pass
    elif result.error.code == "PAYMENT_VERIFICATION_FAILED":
        # On-chain verification returned false
        pass
    elif result.error.code == "INSUFFICIENT_CREDITS":
        # Top up credits at coinrailz.com/api-keys
        pass
    elif result.error.code == "RATE_LIMITED":
        # Wait and retry
        import time
        time.sleep(result.error.retry_after or 60)

Error Response Schema

@dataclass
class ErrorResponse:
    code: str           # Stable error identifier for switch statements
    http_status: int    # HTTP status code
    human_message: str  # Human-readable explanation
    agent_hint: str     # Actionable fix suggestion for AI agents
    recoverable: bool   # Whether retrying may succeed
    telemetry_id: str   # Support ticket reference

Error Codes Reference

Code Description Recoverable
PAYMENT_HEADER_MISSING X-PAYMENT header is empty Yes
PAYMENT_INVALID_TX_HASH_LENGTH Transaction hash wrong length Yes
PAYMENT_INVALID_TX_HASH_FORMAT Invalid characters in hash Yes
PAYMENT_DECODE_FAILED Could not decode payment payload Yes
PAYMENT_VERIFICATION_FAILED On-chain verification returned false No
PAYMENT_VERIFICATION_EXCEPTION Verification threw an error Maybe
INSUFFICIENT_CREDITS Not enough credits for operation Yes
INVALID_API_KEY API key not found or expired No
RATE_LIMITED Too many requests Yes

Pricing

Tier Volume Processing Fee
Starter $0-$10K/mo 1.5% + $0.01
Growth $10K-$100K/mo 1.25% + $0.01
Platform $100K+/mo 0.9% + $0.01

Intelligence Bundle: +0.35% per transaction OR $79/month flat

Transaction Limits

  • Minimum transaction: $0.05 USDC
  • Maximum transaction: $100,000 USDC (contact sales for higher limits)

Refunds & Disputes

Due to the non-custodial nature of blockchain transactions:

  • Refunds are not supported - All blockchain transactions are final and irreversible
  • Disputes: For transaction issues, contact support@coinrailz.com with your transaction ID
  • Prevention: Always verify recipient addresses before sending

Legal

This SDK provides non-custodial payment routing. Coin Railz does not hold, custody, or control user funds at any time. Users maintain full control of their wallets and private keys.

See Terms of Service for full legal terms.

Support

License

MIT License - see LICENSE for details.

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

coinrailz-1.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

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

coinrailz-1.1.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file coinrailz-1.1.0.tar.gz.

File metadata

  • Download URL: coinrailz-1.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for coinrailz-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b751f631065c4f179e48a3b39bb636c649d260592c45cb46248e08f8f3120acb
MD5 9b1a076a0e150baf2357468266443307
BLAKE2b-256 8b32974d6b716bfac21483f0ec5b35d7ddbc70382bd51959608d6d11e78c6ea8

See more details on using hashes here.

File details

Details for the file coinrailz-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: coinrailz-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for coinrailz-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6d37ef28c1b00da45c0f4f45638848a2da0c9c6728d5f4990857fa2dda82138
MD5 5d7f071e15835b3f29b1d23b563ca27f
BLAKE2b-256 ee71c4048036c7355641ebcd1a1bf497269ad48bd5854cb1a020cfef1a9e227d

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