TuleBank — check wallet balance, send ARS to any CVU/ALIAS, swap USDC/wARS, manage beneficiaries, and move funds with ARS off-ramp/on-ramp flows.
You can send Argentine pesos (ARS) to any bank account via CVU or ALIAS and fund your wallet from ARS bank transfers using the tulebank CLI, which talks to a proxy that handles Ripio Ramps API credentials.
franv98, pilarcastilloz, tulezao). If the user provides a word or short text, it's an alias.0000003100099123456789). If the user provides a long number, it's a CVU.--to in beneficiaries add and send.tulebank send. Use question format (e.g., "Should I send 3,000 ARS to Pilar Castillo (pilarcastilloz)?").lib/ or run ad-hoc JavaScript to bypass the CLI.tulebank binary for all commands in this skill.tulebank is not available, ask the user to install it or fix PATH before continuing.beneficiaries add --to <alias_or_cvu> to register it. Ripio will return the holder's name, CUIT, and bank — show this to the user and ask for confirmation before sending. The send command requires an existing beneficiary; it will NOT auto-create one.tulebank signup first.check-kyc sends an OTP to their phone. You must ask the human for the 6-digit code and use otp --code <code> to validate.send command creates an off-ramp session and returns deposit addresses. The user deposits USDC or wARS to that address, and Ripio converts to ARS and sends to the bank.tulebank wallet setup), send can auto-send tokens with --amount. Omit --token for smart send (auto-picks wARS or swaps USDC→wARS).--to accepts beneficiary names (e.g., --to Pili matches "Pilar Castillo"). Word-prefix matching is supported.--yes to skip the prompt only after the human has already confirmed to you directly.send command automatically activates the target beneficiary's fiat account before sending. This may take a few extra seconds if the account was suspended.tulebank history to confirm the record.tulebank swap to convert between USDC and wARS on Base. wARS converts 1:1 to ARS via off-ramp, so swapping USDC to wARS before sending can lock in the rate.tulebank onramp quote/create/status for ARS -> wARS (default, session flow) or ARS -> USDC (order flow). Workstream 5 v1 supports bank_transfer only.--amount, no --token: When the user specifies an amount in ARS/pesos, ALWAYS use --amount <n> WITHOUT --token. The --amount value is in ARS. The CLI handles everything (picks wARS if available, or auto-swaps USDC→wARS). Never manually calculate USDC equivalents — it introduces rounding errors and the result won't be exact. Only use --token USDC when the user explicitly says they want to send USDC (not ARS).tulebank history to confirm the transaction was recorded.Run these via the exec tool using the tulebank CLI binary.
tulebank wallet setup
Creates a CDP smart wallet on Base via the proxy (no local credentials needed).
tulebank wallet info
Shows the wallet address.
tulebank wallet balance
Shows USDC, wARS, and ETH balances on Base.
tulebank signup --email <email> --phone <phone>
Creates a TuleBank account, generates a per-user API key, and saves it to config. Only needed once. Use tulebank setup --api-key <key> to log in on another device.
tulebank check-kyc
tulebank otp --code <123456>
check-kyc triggers an OTP to the user's phone. Ask the human for the code, then validate with otp.
tulebank kyc-status
tulebank beneficiaries search "<query>"
Searches name, description, and CVU/ALIAS. Use this when the user refers to someone by name or description.
tulebank beneficiaries list
tulebank beneficiaries add --to <CVU_OR_ALIAS> [--name "<name>"] [--description "<desc>"]
Creates a fiat account via the proxy (creates + confirms + polls until enabled), then saves locally. If --name is omitted, the holder's name is auto-detected from Ripio (metadata includes name, CUIT, and bank). The response includes a holder field with the detected info — use this to confirm with the user.
tulebank send --to <name/CVU_OR_ALIAS>
Sends to an existing beneficiary. The --to value is resolved via exact alias/CVU match or fuzzy name search. If the beneficiary is not found, the command errors and asks you to add them first with tulebank beneficiaries add.
tulebank send --to <CVU_OR_ALIAS> --amount <n> --token <USDC|wARS>
Creates off-ramp session and automatically sends tokens from the configured wallet to the Ripio deposit address on Base. Shows a confirmation prompt before sending. Add --yes to skip the prompt (only after human has confirmed to you). Use --manual to skip auto-send entirely.
tulebank swap --from USDC --to wARS --amount 10
Swaps tokens via DEX on Base. Default slippage is 100 bps (1%). Use --slippage <bps> to change. Add --yes to skip confirmation (only after human has confirmed to you).
tulebank send-status --session <session-id>
Shows deposit addresses and transactions for an off-ramp session.
tulebank quote --from USDC --to ARS --amount 10 [--chain BASE]
tulebank onramp quote --amount 50000 [--asset wARS|USDC] [--chain BASE]
tulebank onramp create --amount 50000 [--asset wARS|USDC] [--to-address 0x...] [--chain BASE]
Creates an on-ramp flow using a fresh quote. wARS (default) creates a session; USDC creates an order. Uses configured wallet address when available; pass --to-address to override.
tulebank onramp status --transaction <transaction-id> [--asset wARS|USDC]
tulebank limits
tulebank fiat-account --id <fiat-account-id>
tulebank history
tulebank history --beneficiary "<name>"
tulebank history --type send
tulebank history --type onramp
tulebank history --from 2026-01-01 --to-date 2026-01-31
Shows local transaction history. Supports filtering by beneficiary (fuzzy), type (send/swap/onramp), and date range. Default: last 30 days.
--amount is always in ARS (= wARS, 1:1). Do NOT convert to USDC manually.--token is omitted and --amount is given, the CLI auto-picks wARS (if balance sufficient) or swaps USDC→wARS first.--token is specified, sends that token directly (no auto-swap).--amount 2300 (NOT --amount 1.57 --token USDC).--to accepts beneficiary names (e.g., --to Pili). If one match is found, it auto-resolves. If multiple, it errors with a list.~/.tulebank/history.json.send --to Pili --amount 10000 --yeshistory --beneficiary Pili to confirm the recordbeneficiaries search "verdulería"send --to <their_alias>beneficiaries search "franv98" → not foundbeneficiaries add --to franv98 → Ripio returns holder infosend --to franv98 --amount 2000 --yeshistory to confirm the recordbeneficiaries search "0000003100099123456789" → not foundbeneficiaries add --to 0000003100099123456789 → Ripio returns holder infosend --to 0000003100099123456789beneficiaries search "tulezao" → not foundbeneficiaries add --to tulezao → Ripio returns holder infosignup --email <email> --phone <phone>check-kyc (sends OTP)otp --code <code>kyc-status to verify COMPLETEDsend --to pilarcastilloz --amount 10000 --yes
--amount is ARS-denominated (10000 = 10,000 ARS). Do NOT convert to USDC.history to confirm the recordwallet balance to check USDC balanceswap --from USDC --to wARS --amount 10send --to pilarcastilloz --amount 14380 --token wARSquote --from USDC --to ARS --amount 10onramp quote --amount 50000onramp create --amount 50000 --yesonramp status --transaction <id> to track progress.