{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tulebank",
    "name": "Tulebank",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/aromeoes/tulebank",
    "canonicalUrl": "https://clawhub.ai/aromeoes/tulebank",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tulebank",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tulebank",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tulebank"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/tulebank",
    "agentPageUrl": "https://openagent3.xyz/skills/tulebank/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tulebank/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tulebank/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "CVU vs ALIAS",
        "body": "ALIAS: a text string (e.g., franv98, pilarcastilloz, tulezao). If the user provides a word or short text, it's an alias.\nCVU: a 22-digit numeric string (e.g., 0000003100099123456789). If the user provides a long number, it's a CVU.\nBoth are valid destinations for --to in beneficiaries add and send."
      },
      {
        "title": "Important rules",
        "body": "ALWAYS confirm the destination and action with the user before executing tulebank send. Use question format (e.g., \"Should I send 3,000 ARS to Pilar Castillo (pilarcastilloz)?\").\nCLI only: run TuleBank through CLI commands. Do not import files under lib/ or run ad-hoc JavaScript to bypass the CLI.\nUse the installed tulebank binary for all commands in this skill.\nIf tulebank is not available, ask the user to install it or fix PATH before continuing.\nWhen the user refers to someone by name or description (e.g., \"la verdulería\", \"mi hermano\"), search beneficiaries first.\nIf multiple matches are found, ask the user to clarify.\nIf no match is found and the user provides an alias or CVU, run 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.\nOutput from the CLI is JSON. Parse it and present it in a human-friendly way.\nThe user must sign up before adding beneficiaries or sending. If not configured, run tulebank signup first.\nOTP flow: For existing Ripio users, 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.\nThe 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.\nIf the user has a wallet configured (tulebank wallet setup), send can auto-send tokens with --amount. Omit --token for smart send (auto-picks wARS or swaps USDC→wARS).\n--to accepts beneficiary names (e.g., --to Pili matches \"Pilar Castillo\"). Word-prefix matching is supported.\nAuto-send shows a confirmation prompt with beneficiary, amount, and destination. The human must confirm before funds are sent. Use --yes to skip the prompt only after the human has already confirmed to you directly.\nFiat account activation: Ripio only allows one enabled fiat account per customer. The send command automatically activates the target beneficiary's fiat account before sending. This may take a few extra seconds if the account was suspended.\nAfter auto-sending, show the transaction hash and run tulebank history to confirm the record.\nSwaps: Use 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.\nOn-ramp (bank transfer): Use tulebank onramp quote/create/status for ARS -> wARS (default, session flow) or ARS -> USDC (order flow). Workstream 5 v1 supports bank_transfer only.\nARS amounts → just use --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).\nHistory: After every send, swap, or on-ramp create, call tulebank history to confirm the transaction was recorded."
      },
      {
        "title": "Available commands",
        "body": "Run these via the exec tool using the tulebank CLI binary."
      },
      {
        "title": "Wallet setup",
        "body": "tulebank wallet setup\n\nCreates a CDP smart wallet on Base via the proxy (no local credentials needed)."
      },
      {
        "title": "Wallet info",
        "body": "tulebank wallet info\n\nShows the wallet address."
      },
      {
        "title": "Wallet balance",
        "body": "tulebank wallet balance\n\nShows USDC, wARS, and ETH balances on Base."
      },
      {
        "title": "Sign up (prerequisite)",
        "body": "tulebank signup --email <email> --phone <phone>\n\nCreates 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."
      },
      {
        "title": "KYC flow (existing Ripio users)",
        "body": "tulebank check-kyc\ntulebank otp --code <123456>\n\ncheck-kyc triggers an OTP to the user's phone. Ask the human for the code, then validate with otp."
      },
      {
        "title": "Check KYC status",
        "body": "tulebank kyc-status"
      },
      {
        "title": "Search beneficiaries",
        "body": "tulebank beneficiaries search \"<query>\"\n\nSearches name, description, and CVU/ALIAS. Use this when the user refers to someone by name or description."
      },
      {
        "title": "List all beneficiaries",
        "body": "tulebank beneficiaries list"
      },
      {
        "title": "Add a beneficiary",
        "body": "tulebank beneficiaries add --to <CVU_OR_ALIAS> [--name \"<name>\"] [--description \"<desc>\"]\n\nCreates 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."
      },
      {
        "title": "Send (off-ramp)",
        "body": "tulebank send --to <name/CVU_OR_ALIAS>\n\nSends 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."
      },
      {
        "title": "Send (off-ramp) — auto-send from wallet",
        "body": "tulebank send --to <CVU_OR_ALIAS> --amount <n> --token <USDC|wARS>\n\nCreates 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."
      },
      {
        "title": "Swap tokens on Base",
        "body": "tulebank swap --from USDC --to wARS --amount 10\n\nSwaps 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)."
      },
      {
        "title": "Check off-ramp session status",
        "body": "tulebank send-status --session <session-id>\n\nShows deposit addresses and transactions for an off-ramp session."
      },
      {
        "title": "Get a quote",
        "body": "tulebank quote --from USDC --to ARS --amount 10 [--chain BASE]"
      },
      {
        "title": "On-ramp quote (ARS -> wARS or USDC)",
        "body": "tulebank onramp quote --amount 50000 [--asset wARS|USDC] [--chain BASE]"
      },
      {
        "title": "Create on-ramp flow (bank transfer)",
        "body": "tulebank onramp create --amount 50000 [--asset wARS|USDC] [--to-address 0x...] [--chain BASE]\n\nCreates 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."
      },
      {
        "title": "Check on-ramp status",
        "body": "tulebank onramp status --transaction <transaction-id> [--asset wARS|USDC]"
      },
      {
        "title": "Check transaction limits",
        "body": "tulebank limits"
      },
      {
        "title": "Check fiat account status",
        "body": "tulebank fiat-account --id <fiat-account-id>"
      },
      {
        "title": "Transaction history",
        "body": "tulebank history\ntulebank history --beneficiary \"<name>\"\ntulebank history --type send\ntulebank history --type onramp\ntulebank history --from 2026-01-01 --to-date 2026-01-31\n\nShows local transaction history. Supports filtering by beneficiary (fuzzy), type (send/swap/onramp), and date range. Default: last 30 days."
      },
      {
        "title": "Smart send rules",
        "body": "--amount is always in ARS (= wARS, 1:1). Do NOT convert to USDC manually.\nWhen --token is omitted and --amount is given, the CLI auto-picks wARS (if balance sufficient) or swaps USDC→wARS first.\nWhen --token is specified, sends that token directly (no auto-swap).\nExample: user says \"2300 pesos\" → --amount 2300 (NOT --amount 1.57 --token USDC).\n--to accepts beneficiary names (e.g., --to Pili). If one match is found, it auto-resolves. If multiple, it errors with a list.\nAfter every send, the transaction is recorded in ~/.tulebank/history.json."
      },
      {
        "title": "User says: \"mandale 10k a Pili\"",
        "body": "Search beneficiaries → finds \"Pilar Castillo (pilarcastilloz)\"\nAsk: \"Pilar Castillo (pilarcastilloz) — le mando 10,000 ARS?\"\nOn confirmation: run send --to Pili --amount 10000 --yes\nShow transaction hash\nRun history --beneficiary Pili to confirm the record"
      },
      {
        "title": "User says: \"mandale plata a la verdulería\"",
        "body": "Run beneficiaries search \"verdulería\"\nIf found: ask \"La Amistad (la verdulería cerca de casa) — le envío plata?\"\nOn confirmation: run send --to <their_alias>\nShow deposit address and instructions"
      },
      {
        "title": "User says: \"manda 2000 a franv98\"",
        "body": "Run beneficiaries search \"franv98\" → not found\n\"franv98\" is a text string → it's an alias. Run beneficiaries add --to franv98 → Ripio returns holder info\nAsk: \"franv98 pertenece a FRANCISCO VARELA (CUIT 20385..., Banco Galicia). Le mando 2,000 ARS?\"\nOn confirmation: run send --to franv98 --amount 2000 --yes\nShow transaction hash\nRun history to confirm the record"
      },
      {
        "title": "User says: \"send to 0000003100099123456789\"",
        "body": "Run beneficiaries search \"0000003100099123456789\" → not found\n22-digit number → it's a CVU. Run beneficiaries add --to 0000003100099123456789 → Ripio returns holder info\nAsk: \"Ese CVU pertenece a MARÍA GARCÍA (CUIT 27..., Banco Nación). Confirmo el envío?\"\nOn confirmation: run send --to 0000003100099123456789\nShow deposit address and instructions"
      },
      {
        "title": "User says: \"send to tulezao\"",
        "body": "Run beneficiaries search \"tulezao\" → not found\n\"tulezao\" is a text string → it's an alias. Run beneficiaries add --to tulezao → Ripio returns holder info\nAsk: \"El alias tulezao pertenece a JUAN PÉREZ (CUIT 20..., Banco Nación). Lo agrego y le envío?\"\nOn confirmation: proceed with send"
      },
      {
        "title": "Onboarding a new user (existing Ripio account)",
        "body": "Ask for their email and phone number\nRun signup --email <email> --phone <phone>\nRun check-kyc (sends OTP)\nAsk human for the 6-digit code\nRun otp --code <code>\nRun kyc-status to verify COMPLETED"
      },
      {
        "title": "Autonomous send (wallet configured)",
        "body": "Ask: \"Le mando 10,000 ARS a Pilar Castillo (pilarcastilloz)?\"\nOn confirmation: run send --to pilarcastilloz --amount 10000 --yes\n\n--amount is ARS-denominated (10000 = 10,000 ARS). Do NOT convert to USDC.\nThe CLI handles token selection: uses wARS if available, otherwise auto-swaps USDC→wARS.\n\n\nShow transaction hash from the response\nRun history to confirm the record"
      },
      {
        "title": "Swap USDC to wARS before sending",
        "body": "Run wallet balance to check USDC balance\nRun swap --from USDC --to wARS --amount 10\nShow swap result: \"Swapped 10 USDC to ~14,380 wARS\"\nRun send --to pilarcastilloz --amount 14380 --token wARS\nwARS converts 1:1 to ARS via off-ramp"
      },
      {
        "title": "Checking a rate before sending",
        "body": "Run quote --from USDC --to ARS --amount 10\nTell user: \"10 USDC = ~14,300 ARS at current rate\""
      },
      {
        "title": "Funding wallet from ARS bank transfer",
        "body": "Run onramp quote --amount 50000\nAsk user to confirm destination wallet address and amount.\nRun onramp create --amount 50000 --yes\nShow session/order ID + payment instructions.\nRun onramp status --transaction <id> to track progress."
      }
    ],
    "body": "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.\n\nCVU vs ALIAS\nALIAS: a text string (e.g., franv98, pilarcastilloz, tulezao). If the user provides a word or short text, it's an alias.\nCVU: a 22-digit numeric string (e.g., 0000003100099123456789). If the user provides a long number, it's a CVU.\nBoth are valid destinations for --to in beneficiaries add and send.\nImportant rules\nALWAYS confirm the destination and action with the user before executing tulebank send. Use question format (e.g., \"Should I send 3,000 ARS to Pilar Castillo (pilarcastilloz)?\").\nCLI only: run TuleBank through CLI commands. Do not import files under lib/ or run ad-hoc JavaScript to bypass the CLI.\nUse the installed tulebank binary for all commands in this skill.\nIf tulebank is not available, ask the user to install it or fix PATH before continuing.\nWhen the user refers to someone by name or description (e.g., \"la verdulería\", \"mi hermano\"), search beneficiaries first.\nIf multiple matches are found, ask the user to clarify.\nIf no match is found and the user provides an alias or CVU, run 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.\nOutput from the CLI is JSON. Parse it and present it in a human-friendly way.\nThe user must sign up before adding beneficiaries or sending. If not configured, run tulebank signup first.\nOTP flow: For existing Ripio users, 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.\nThe 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.\nIf the user has a wallet configured (tulebank wallet setup), send can auto-send tokens with --amount. Omit --token for smart send (auto-picks wARS or swaps USDC→wARS).\n--to accepts beneficiary names (e.g., --to Pili matches \"Pilar Castillo\"). Word-prefix matching is supported.\nAuto-send shows a confirmation prompt with beneficiary, amount, and destination. The human must confirm before funds are sent. Use --yes to skip the prompt only after the human has already confirmed to you directly.\nFiat account activation: Ripio only allows one enabled fiat account per customer. The send command automatically activates the target beneficiary's fiat account before sending. This may take a few extra seconds if the account was suspended.\nAfter auto-sending, show the transaction hash and run tulebank history to confirm the record.\nSwaps: Use 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.\nOn-ramp (bank transfer): Use tulebank onramp quote/create/status for ARS -> wARS (default, session flow) or ARS -> USDC (order flow). Workstream 5 v1 supports bank_transfer only.\nARS amounts → just use --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).\nHistory: After every send, swap, or on-ramp create, call tulebank history to confirm the transaction was recorded.\nAvailable commands\n\nRun these via the exec tool using the tulebank CLI binary.\n\nWallet setup\ntulebank wallet setup\n\n\nCreates a CDP smart wallet on Base via the proxy (no local credentials needed).\n\nWallet info\ntulebank wallet info\n\n\nShows the wallet address.\n\nWallet balance\ntulebank wallet balance\n\n\nShows USDC, wARS, and ETH balances on Base.\n\nSign up (prerequisite)\ntulebank signup --email <email> --phone <phone>\n\n\nCreates 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.\n\nKYC flow (existing Ripio users)\ntulebank check-kyc\ntulebank otp --code <123456>\n\n\ncheck-kyc triggers an OTP to the user's phone. Ask the human for the code, then validate with otp.\n\nCheck KYC status\ntulebank kyc-status\n\nSearch beneficiaries\ntulebank beneficiaries search \"<query>\"\n\n\nSearches name, description, and CVU/ALIAS. Use this when the user refers to someone by name or description.\n\nList all beneficiaries\ntulebank beneficiaries list\n\nAdd a beneficiary\ntulebank beneficiaries add --to <CVU_OR_ALIAS> [--name \"<name>\"] [--description \"<desc>\"]\n\n\nCreates 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.\n\nSend (off-ramp)\ntulebank send --to <name/CVU_OR_ALIAS>\n\n\nSends 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.\n\nSend (off-ramp) — auto-send from wallet\ntulebank send --to <CVU_OR_ALIAS> --amount <n> --token <USDC|wARS>\n\n\nCreates 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.\n\nSwap tokens on Base\ntulebank swap --from USDC --to wARS --amount 10\n\n\nSwaps 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).\n\nCheck off-ramp session status\ntulebank send-status --session <session-id>\n\n\nShows deposit addresses and transactions for an off-ramp session.\n\nGet a quote\ntulebank quote --from USDC --to ARS --amount 10 [--chain BASE]\n\nOn-ramp quote (ARS -> wARS or USDC)\ntulebank onramp quote --amount 50000 [--asset wARS|USDC] [--chain BASE]\n\nCreate on-ramp flow (bank transfer)\ntulebank onramp create --amount 50000 [--asset wARS|USDC] [--to-address 0x...] [--chain BASE]\n\n\nCreates 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.\n\nCheck on-ramp status\ntulebank onramp status --transaction <transaction-id> [--asset wARS|USDC]\n\nCheck transaction limits\ntulebank limits\n\nCheck fiat account status\ntulebank fiat-account --id <fiat-account-id>\n\nTransaction history\ntulebank history\ntulebank history --beneficiary \"<name>\"\ntulebank history --type send\ntulebank history --type onramp\ntulebank history --from 2026-01-01 --to-date 2026-01-31\n\n\nShows local transaction history. Supports filtering by beneficiary (fuzzy), type (send/swap/onramp), and date range. Default: last 30 days.\n\nSmart send rules\n--amount is always in ARS (= wARS, 1:1). Do NOT convert to USDC manually.\nWhen --token is omitted and --amount is given, the CLI auto-picks wARS (if balance sufficient) or swaps USDC→wARS first.\nWhen --token is specified, sends that token directly (no auto-swap).\nExample: user says \"2300 pesos\" → --amount 2300 (NOT --amount 1.57 --token USDC).\n--to accepts beneficiary names (e.g., --to Pili). If one match is found, it auto-resolves. If multiple, it errors with a list.\nAfter every send, the transaction is recorded in ~/.tulebank/history.json.\nExample flows\nUser says: \"mandale 10k a Pili\"\nSearch beneficiaries → finds \"Pilar Castillo (pilarcastilloz)\"\nAsk: \"Pilar Castillo (pilarcastilloz) — le mando 10,000 ARS?\"\nOn confirmation: run send --to Pili --amount 10000 --yes\nShow transaction hash\nRun history --beneficiary Pili to confirm the record\nUser says: \"mandale plata a la verdulería\"\nRun beneficiaries search \"verdulería\"\nIf found: ask \"La Amistad (la verdulería cerca de casa) — le envío plata?\"\nOn confirmation: run send --to <their_alias>\nShow deposit address and instructions\nUser says: \"manda 2000 a franv98\"\nRun beneficiaries search \"franv98\" → not found\n\"franv98\" is a text string → it's an alias. Run beneficiaries add --to franv98 → Ripio returns holder info\nAsk: \"franv98 pertenece a FRANCISCO VARELA (CUIT 20385..., Banco Galicia). Le mando 2,000 ARS?\"\nOn confirmation: run send --to franv98 --amount 2000 --yes\nShow transaction hash\nRun history to confirm the record\nUser says: \"send to 0000003100099123456789\"\nRun beneficiaries search \"0000003100099123456789\" → not found\n22-digit number → it's a CVU. Run beneficiaries add --to 0000003100099123456789 → Ripio returns holder info\nAsk: \"Ese CVU pertenece a MARÍA GARCÍA (CUIT 27..., Banco Nación). Confirmo el envío?\"\nOn confirmation: run send --to 0000003100099123456789\nShow deposit address and instructions\nUser says: \"send to tulezao\"\nRun beneficiaries search \"tulezao\" → not found\n\"tulezao\" is a text string → it's an alias. Run beneficiaries add --to tulezao → Ripio returns holder info\nAsk: \"El alias tulezao pertenece a JUAN PÉREZ (CUIT 20..., Banco Nación). Lo agrego y le envío?\"\nOn confirmation: proceed with send\nOnboarding a new user (existing Ripio account)\nAsk for their email and phone number\nRun signup --email <email> --phone <phone>\nRun check-kyc (sends OTP)\nAsk human for the 6-digit code\nRun otp --code <code>\nRun kyc-status to verify COMPLETED\nAutonomous send (wallet configured)\nAsk: \"Le mando 10,000 ARS a Pilar Castillo (pilarcastilloz)?\"\nOn confirmation: run send --to pilarcastilloz --amount 10000 --yes\n--amount is ARS-denominated (10000 = 10,000 ARS). Do NOT convert to USDC.\nThe CLI handles token selection: uses wARS if available, otherwise auto-swaps USDC→wARS.\nShow transaction hash from the response\nRun history to confirm the record\nSwap USDC to wARS before sending\nRun wallet balance to check USDC balance\nRun swap --from USDC --to wARS --amount 10\nShow swap result: \"Swapped 10 USDC to ~14,380 wARS\"\nRun send --to pilarcastilloz --amount 14380 --token wARS\nwARS converts 1:1 to ARS via off-ramp\nChecking a rate before sending\nRun quote --from USDC --to ARS --amount 10\nTell user: \"10 USDC = ~14,300 ARS at current rate\"\nFunding wallet from ARS bank transfer\nRun onramp quote --amount 50000\nAsk user to confirm destination wallet address and amount.\nRun onramp create --amount 50000 --yes\nShow session/order ID + payment instructions.\nRun onramp status --transaction <id> to track progress."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/aromeoes/tulebank",
    "publisherUrl": "https://clawhub.ai/aromeoes/tulebank",
    "owner": "aromeoes",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tulebank",
    "downloadUrl": "https://openagent3.xyz/downloads/tulebank",
    "agentUrl": "https://openagent3.xyz/skills/tulebank/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tulebank/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tulebank/agent.md"
  }
}