通过 Rozo 实现跨链加密货币支付与桥接,可在 Ethereum、Base、BNB Chain、Solana 和 Stellar 上发送 USDC/USDT。适用于用户说“支付”“转账”等关键词。
Send cross-chain crypto payments and bridging via Rozo. Send USDC/USDT across Ethereum, Arbitrum, Base, BNB Chain (BSC), Polygon, Solana, and Stellar (Base and Stellar are USDC-only; Solana receives USDC only but can pay in USDT).
Confirmation: every payment, any amount, shows full details and waits
for an explicit yes/no. Small-amount auto-execute exists but ships OFF
(thresholds 0 in version.json); it runs only if the user raises them.
Crypto transfers are irreversible. Before funding anything, restate and have the user verify the destination address, chain, token, memo (Stellar) and amount against a source they trust. A payment to a wrong address, wrong chain, or without a required memo is not recoverable by Rozo or anyone else. (If the user has deliberately raised the auto-execute thresholds, their standing opt-in covers amounts below them — correctness checks still run, but the per-payment restatement is not required there.)
Determine the user's intent and load the matching sub-skill:
IntentSub-skillTriggersSend a paymentskills/send-payment/SKILL.md"pay", "send", "transfer", "payout", shares a QR code, provides an amount + addressCheck wallet balanceskills/check-balance/SKILL.md"check balance", "how much do I have", "show my balance", "wallet balance"Parse a QR codeskills/parse-qr/SKILL.md"scan QR", "parse QR", "read this QR", shares a QR image without mentioning paymentCheck payment statusskills/payment-status/SKILL.md"check payment", "payment status", "where is my payment", "track payment", provides a payment UUID or tx hash
Rules:
send-payment (it handles QR parsing internally)parse-qr first, then offer to sendcheck-balance, then continue to send-payment if they want to payChainUSDCUSDTEthereumYesYesArbitrumYesYesBaseYesNoBSCYesYesPolygonYesYesSolanaYesNoStellarYesNo
ChainUSDCUSDTEthereumYesYesArbitrumYesYesBaseYesNoBSCYesYesPolygonYesYesSolanaYesYesStellarYesNo
Trust the live API over these tables. Do NOT refuse a user's request
based purely on the tables above. Tables can be stale or misread — always
call create-payment.js --dryrun first and let the API be the source of
truth. If dryrun returns success: true, the route is supported; if it
returns an error, report that error to the user. Never tell a user "this
route isn't supported" without running the dryrun first.
Requires Node.js (ES modules). All scripts in scripts/dist/ are run with node.
The Rozo APIs are public and rate-limited — no API keys or authentication tokens are required.
EndpointHostAuthNotesPayment API (create, get, check)intentapiv4.rozo.aiNone (rate-limited)Main Rozo payment APIBalance API (check balance)api-balance.rozo-deeplink.workers.devNone (rate-limited)Rozo balance service (Cloudflare Workers)
Both hosts are operated by Rozo. The balance endpoint uses a separate Cloudflare Workers deployment for performance.
Data sent to Rozo: as part of normal operation, 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). No API key is involved. Anyone
who can observe a payment ID can query that payment's status.
exactOut by default — recipient gets exact amount, fee added on topShared Node.js scripts in scripts/dist/ (run with plain node):
ScriptPurposecheck-balance.jsFetch wallet balances via Rozo balance APIcheck-stellar-trustline.jsVerify asset trustline (USDC/EURC) on Stellar G-walletscreate-payment.jsCreate a payment (or dryrun for fee estimate) via Rozo APIget-payment.jsGet payment status by ID, tx hash, or address+memoparse-qr.jsParse payment QR code URIs (EIP-681, Solana Pay, Stellar URI)chains.jsShared chain/token config (imported by other scripts)
references/supported-chains.md — chain IDs, token addresses, decimalsreferences/api-reference.md — Rozo API endpoints and schemasreferences/wallet-detection.md — address format detection rules