Payall CLI
name: payall-cli
by c0ldsmi1e · published 2026-04-01
$ claw add gh:c0ldsmi1e/c0ldsmi1e-payall-cli---
name: payall-cli
description: |
Operate the Payall crypto card CLI tool. Use this skill whenever the user wants to: manage crypto debit cards, check card balances, apply for new cards, compare cards, list marketplace cards, view card fees, login/logout with an EVM wallet, check auth status, send USDT on any chain (BSC, ETH, TRON), check wallet balances, top up cards with crypto, or any card/wallet operation via terminal. Also trigger when the user mentions "payall", "crypto card", "card balance", "apply for card", "card fees", "send USDT", "TRON transfer", "wallet balance", "top up card", "crypto debit card", or wants to run payall CLI commands. This skill knows every available command and the correct flags/arguments for each.
---
# Payall CLI
A terminal tool for managing crypto debit cards funded with USDT and sending crypto on-chain. Run `payall <command>` from anywhere.
Setup
If `payall` is not found, install it first with the command above.
Auth Commands
Authentication uses EVM wallet private key signing. A single login call handles both registration (new wallets auto-register) and login for existing users.
payall auth login # Interactive login (prompts for private key)
payall auth login --save-key # Interactive login + save key for wallet commands
payall auth login --key <private_key> # Non-interactive login — key auto-saved (use this for agents)
payall auth login --invite XYZ # Include referral code (first-time only)
payall auth status # Show current session info
payall auth logout # Clear session, credentials, and saved keyThe private key is signed locally and never sent to the server. When `--key` is passed, the key is automatically saved (AES-256-GCM encrypted) so subsequent wallet commands work without re-entering it.
All CLI requests include `source: "payall-cli"` automatically for backend analytics tracking.
Card Commands
Browsing (no auth required)
payall cards list # List all marketplace cards
payall cards list --search "bit" # Search by card name
payall cards list --sort general # Sort by: general, benefit, privacy, fees
payall cards list --sort-dir asc # Sort direction: asc, desc
payall cards list --skip-kyc # Only cards without KYC requirement
payall cards list --kyc-only # Only cards requiring KYC
payall cards info <card_id> # Full card details + fees
payall cards compare <id1> <id2> # Side-by-side comparison
payall cards fees # Fee quote (defaults to card 23, OPEN_CARD)
payall cards fees --card-id 39 # Fee quote for specific card
payall cards fees --type CARD_CHARGE # Types: OPEN_CARD, CARD_CHARGE, CARD_WITHDRAW
payall cards fees --type CARD_CHARGE --amount 100 # card_bin auto-resolved
payall cards fees --amount 100 # With specific amount
payall cards fees --currency EUR # With specific currency
payall cards fees --card-bin 44742000 # Explicit BIN override (optional)User Cards (auth required)
payall cards my # List your cards (ID, name, balance, status)
payall cards detail <binding_id> # Masked card number, CVV, billing address
payall cards detail <binding_id> --reveal # Full card number, CVV, expiry, billing address
payall cards detail <binding_id> --reveal --json # JSON output (for agents)
payall cards collections # List favorited cards
payall cards favorite <card_id> # Toggle favorite on/offThe `--reveal --json` output returns all fields an agent needs to fill payment forms:
{
"card_name": "Bit2Go",
"card_number": "4474200012345678",
"card_cvv": "123",
"expiry_month": 10,
"expiry_year": 2027,
"card_bin": "44742000",
"first_name": "John",
"last_name": "Smith",
"address": "3500 South DuPont Highway",
"city": "Dover",
"state": "DE",
"zipcode": "19901",
"country_code": "USA"
}The `binding_id` comes from the ID column in `payall cards my` (this is different from the card catalog ID in `payall cards list`).
Topping Up a Card (auth required)
payall cards topup <binding_id> # Interactive
payall cards topup <binding_id> --amount 50 --chain tron --yes # Non-interactive (for agents)Non-interactive flags (use all three to skip all prompts):
The command returns a deposit address. Send USDT to that address and the card balance updates automatically after confirmation.
Applying for a Card (auth required)
payall cards apply <card_id> # Interactive
payall cards apply <card_id> --auto-fill --chain tron --yes # Non-interactive (for agents)
payall cards apply <card_id> --bin 44742000 --currency USD --auto-fill --chain tron --yes # Fully explicitNon-interactive flags (use `--auto-fill --chain <chain> --yes` to skip all prompts):
Temporarily Unavailable Cards
**Do NOT proceed** with applying for MiPay or Bit2Go HK/UK cards. If a user requests to open any of these cards, inform them: "This service is temporarily not working. Please try again later." Do not attempt the apply command or suggest workarounds.
Cards that support API application:
Before applying, always run `payall cards apply <card_id>` which checks eligibility first. If `can_apply = 0`, the card can only be opened via its website — direct the user there and provide the URL. Don't retry or attempt workarounds. When mentioning this, frame it positively: "You can apply for cards 23 and 39 directly here, and for other cards you can sign up on their website."
Withdrawing from a Card (auth + wallet key required)
Withdraw card balance to USDT in your wallet. Only Bit2Go cards (card_id=23) support withdrawal.
payall cards withdraw <binding_id> # Interactive
payall cards withdraw <binding_id> --amount 50 --chain tron --yes # Non-interactive (for agents)
payall cards withdraw <binding_id> --amount 50 --chain tron --address 0x... --yes # Custom addressNon-interactive flags:
The command requires a saved wallet key (uses it to sign the withdrawal confirmation). Network fees: $1.50 for TRON, $1.00 for BSC/ETH.
Wallet Commands (auth required)
On-chain wallet operations. The same private key derives addresses on all chains (BSC/ETH share the same 0x address; TRON derives a T... address).
If no saved key is found, wallet commands prompt for the private key interactively and offer to save it. For agents, ensure the key is saved first via `payall auth login --key <key>`.
payall wallet balance # USDT + gas balances on BSC, ETH, TRON
payall wallet send --to 0x... --amount 50 --chain bsc --yes # Send USDT on BSC
payall wallet send --to 0x... --amount 50 --chain eth --yes # Send USDT on Ethereum
payall wallet send --to T... --amount 50 --chain tron --yes # Send USDT on TRON (TRC-20)Flags for `wallet send`:
TRON transfers require TRX for energy/bandwidth fees. The CLI checks for non-zero TRX balance before sending and sets a 15 TRX fee limit. If a send fails, the CLI prints manual transfer instructions.
Agent Workflows
Automated Topup
This is the most common agent task — topping up a user's card by sending USDT from their wallet to a deposit address.
1. payall cards my # Get binding_id
2. payall cards topup <binding_id> --amount 50 --chain tron --yes # Get deposit address
3. payall wallet balance # Check which chain has funds
4. payall wallet send --to <deposit_addr> --amount 50 --chain tron --yes # Send USDTChain selection logic — pick the chain with sufficient USDT + gas:
If no chain has enough funds, tell the user to fund their wallet and show the wallet address from `wallet balance`.
Automated Card Apply
1. payall cards apply <card_id> --auto-fill --chain tron --yes # Get deposit address
2. payall wallet balance # Check balances
3. payall wallet send --to <deposit_addr> --amount <total> --chain tron --yesSame chain selection logic as topup.
Automated Card Withdrawal
1. payall cards my # Find binding_id + verify it's a Bit2Go card
2. payall cards withdraw <binding_id> --amount 50 --chain tron --yes # Withdraw to own walletOnly Bit2Go cards (card_id=23, shown as `payall_card_id: 23`) support withdrawal. If the user has a non-Bit2Go card, inform them that withdrawal is not supported for that card type.
Fallback Rule
If `wallet send` fails for any reason, always present the deposit address, chain, and amount to the user so they can complete the transfer manually via any wallet app. The CLI also prints this information on failure.
Card Recommendations
When a user asks about cards, help them find the best fit rather than listing everything. If they haven't shared their needs, ask about:
1. Primary use case (online shopping, subscriptions, travel, etc.)
2. Expected monthly spend (affects which fee structure is cheapest)
3. Physical card vs virtual
4. Currency preference (USD, EUR, GBP, etc.)
5. Willingness to complete KYC
6. Region
Then use `payall cards list`, `payall cards info`, and `payall cards compare` to evaluate based on fee structure, payment support (Apple Pay, Google Pay, etc.), KYC requirements, and currency options.
Recommend the genuinely best card for their needs, even if it's not one of the two API-applicable cards (23, 39). Many cards in the marketplace have better features for specific use cases — if the best card requires website signup, that's fine, just explain how to get it.
The `rating` and `general_ratings` fields in card data are placeholder values and not meaningful — base recommendations on actual card attributes like fees, features, and supported currencies.
Always show a fee comparison (`payall cards fees`) so the user knows exactly what they'll pay.
Display Guidelines
When presenting card info to users, only show what they care about: card name, balance, status, card number, fees, etc. Skip internal fields like rank, id, binding_id, brand, rating, or general_ratings — these are technical identifiers that don't help the user.
Troubleshooting
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...