All skills

ROZO Intents

Community builtSKILL.md

Send USDC and USDT across Stellar, Ethereum, Arbitrum, Base, BSC, Polygon, and Solana using natural language.

Install
npx skills add https://github.com/RozoAI/rozo-intents-skills
About

Send USDC and USDT across Stellar, Ethereum, Arbitrum, Base, BSC, Polygon, and Solana using natural language. Covers cross-chain bridging, wallet detection, fee estimation, tiered confirmation logic, and QR code payment parsing inside Claude Code.

Links
Tags
rozo-intents · community · RozoAI
SKILL.md

rozo-intents Skills

Cross-chain crypto payments and bridging via Rozo. Covers wallet detection, balance checks, QR parsing, payment creation, and status tracking.

Runtime

All node scripts/dist/*.js commands MUST run from the plugin root (directory containing .claude-plugin/plugin.json). Use ${CLAUDE_PLUGIN_ROOT} when installed as a plugin. If unset, cd to the directory that contains scripts/dist/, skills/, and .claude-plugin/.

No API keys required. Rozo APIs are public and rate-limited.

Data sent to Rozo: wallet addresses, chain/token choices, amounts, memos, and payment IDs are transmitted to Rozo's public rate-limited APIs (intentapiv4.rozo.ai, api-balance.rozo-deeplink.workers.dev) as part of normal operation. Anyone who can observe a payment ID can query its status.

Critical Rules

These apply across all sub-skills. Never skip them.

  • EVM address without chain → always ask which chain. Wrong chain = lost funds. Do this regardless of amount or confirmation threshold.
  • Stellar memo MUST be included when funding. The deposit address is shared; memo routes the payment to the correct order. Missing memo = lost funds.
  • Amount limits: $0.01 minimum, $10,000 maximum per transaction.
  • Trust the live API over chain/token support tables. Always run create-payment.js --dryrun before telling a user a route is unsupported.
  • Stellar G-wallet: check trustline before proceeding. Missing trustline = funds rejected. Run check-stellar-trustline.js first.
  • Do not sleep between status polls. Some harnesses block it. Re-run get-payment.js immediately if status is still pending.

Confirmation Thresholds

Auto-execute is OFF by default. Both thresholds ship as 0, so every payment — any amount — shows full details and waits for an explicit yes/no. Skipping confirmation for small amounts is strictly opt-in: the user must themselves raise freeConfirmThresholdUsd / singleConfirmThresholdUsd in version.json. Never suggest raising them; act on the values found.

Read version.json for current values (both default 0 = disabled).

AmountBehavior
≤ freeConfirm (user-raised)Silent auto-execute, one-line result only
≤ singleConfirm (user-raised)Narrated auto-execute, no yes/no prompt, skip dryrun (fee = $0)
everything else (all amounts at the 0 defaults)Run --dryrun for exact fee, full summary + yes/no confirmation

Chain ambiguity is never skipped regardless of amount.

Skills

SkillFileTriggers
rozo-intentsskills/rozo-intents/Main router — "pay", "send", "transfer", wallet addresses, QR screenshots
send-paymentskills/send-payment/"pay", "send", "transfer", "payout" with amount + destination
check-balanceskills/check-balance/"check balance", "how much do I have", "what's my USDC balance"
payment-statusskills/payment-status/"payment status", "track payment", payment UUID or tx hash
parse-qrskills/parse-qr/QR screenshots, payment URIs (EIP-681, Solana Pay, Stellar URI)

Scripts

ScriptUsed byPurpose
check-balance.jscheck-balance, send-paymentFetch wallet balances (auto-detects chain from address)
create-payment.jssend-paymentCreate payment or dryrun for fee estimate
get-payment.jspayment-status, send-paymentPoll payment status by ID, tx hash, or address+memo
parse-qr.jsparse-qr, send-paymentParse EIP-681, Solana Pay, Stellar URI, plain addresses
check-stellar-trustline.jssend-paymentVerify USDC/EURC trustline on Stellar G-wallets
chains.js(shared)Chain IDs, token addresses, decimals

Supported Chains

Pay-out (sending to)

ChainUSDCUSDT
Ethereum✓✓
Arbitrum✓✓
Base✓✓
BSC✓✓
Polygon✓✓
Solana✓—
Stellar✓—

Pay-in (paying from)

ChainUSDCUSDT
Ethereum✓✓
Arbitrum✓✓
Base✓—
BSC✓✓
Polygon✓✓
Solana✓✓
Stellar✓—

These tables can be stale — always verify with --dryrun.

Source Chain Selection

  1. User specifies source → use it
  2. Otherwise ask which wallet they are paying from and recommend Stellar (zero fee ≤ $10, fastest settlement). Never go looking for wallet secrets yourself — do not probe for .stellar-secret, read .env files, or enumerate key material to guess what the user holds. A wallet the user has not named is not yours to discover.

References

Related skills