deposit-qr
GitHub用于生成Superior管理的EVM钱包充值二维码及支付URI,支持指定链、资产和金额。通过脚本创建符合EIP-681标准的二维码,并严格遵循安全规范,确保用户准确转账至正确链和地址,避免资金损失。
Trigger Scenarios
Install
npx skills add Superior-Trade/superior-skills --skill deposit-qr -g -y
SKILL.md
Frontmatter
{
"name": "deposit-qr",
"description": "Use when a user needs a QR code or wallet payment URI to fund a Superior-managed EVM wallet on a specific chain before using Lighter, Polymarket, Hyperliquid, or other Superior Trade workflows."
}
Deposit QR
Use this skill to create a wallet-scannable QR code for sending a coin or ERC-20 token to a Superior-managed EVM wallet address on a named chain.
This is for funding the wallet itself. It is not the same as a venue-specific deposit intent. For Lighter, a user may first need USDC in a payer wallet, but the Lighter account still requires POST /v3/portfolio/lighter/deposit to get the Lighter CCTP intent address.
For external bridge/provider flows such as Relay, Robinhood Chain USDG, MetaMask Mobile bridge links, or prefilled third-party deposit URLs, use skills/external-deposit instead. Do not use this primitive to encode arbitrary bridge calldata, approvals, or contract deposit calls into transaction QRs.
Required Inputs
Ask for or verify all four fields:
- Destination wallet address, for example
0x1111111111111111111111111111111111111111 - Chain, for example
arbitrum,base,avalanche,polygon, orethereum - Asset, for example
USDC,USDC.e,ETH,AVAX,MATIC, or a token contract address - Amount
Never guess the chain. The same address can exist on many EVM chains, and sending a token on the wrong chain can strand funds.
Safety Rules
- Do not request private keys, seed phrases, passwords, or exchange credentials.
- Show the destination address, chain, asset, token contract, and amount before presenting the QR code.
- Warn that the user must send the correct asset on the correct chain.
- For ERC-20 tokens, include the token contract address in the summary.
- For wallet compatibility, provide both the EIP-681 QR and a plain-address fallback QR.
- Do not claim a deposit arrived. Verify with the relevant chain explorer, wallet balance, or Superior Trade API after the user sends funds.
- Do not use MetaMask deeplinks or QR codes for arbitrary contract calldata. This skill only covers native-token and ERC-20
transferpayment URIs.
QR Generator
Use the bundled script:
node skills/v3/primitives/deposit-qr/scripts/create-deposit-qr.mjs \
--address 0x1111111111111111111111111111111111111111 \
--chain arbitrum \
--asset USDC \
--amount 5
It prints JSON with:
payment_uri— EIP-681 URI for the requested token transferqr_url— hosted QR image URL for the payment URIplain_address_qr_url— fallback QR image URL containing only the destination addresssummary— human-readable chain, asset, token, amount, and destination
Display the QR in Markdown when the client supports images:

Example: Fund a Superior Wallet with Arbitrum USDC
node skills/v3/primitives/deposit-qr/scripts/create-deposit-qr.mjs \
--address 0x1111111111111111111111111111111111111111 \
--chain arbitrum \
--asset USDC \
--amount 5
Tell the user:
Deposit QR Summary:
* Destination: 0x1111111111111111111111111111111111111111
* Chain: Arbitrum One
* Asset: native USDC
* Token contract: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
* Amount: 5 USDC
Scan the QR with a wallet that supports Arbitrum token-transfer URIs. If the wallet does not prefill the token transfer correctly, use the plain address fallback and manually select Arbitrum native USDC.
Common Mistakes
- Using this QR as the Lighter intent address. The destination here is the Superior wallet, not the Lighter deposit intent.
- Omitting the chain. A plain address QR alone does not specify Arbitrum vs Base vs Avalanche.
- Using Ethereum mainnet USDC when the workflow needs Arbitrum/Base/Avalanche USDC.
- Assuming every wallet supports ERC-20 EIP-681 transfer URIs. Always provide the plain-address fallback.
- Using this primitive for Relay or other bridge UIs. Use
skills/external-depositfor prefilled bridge links and quote-backed external wallet flows.
Next Step for Lighter
After the wallet has the correct USDC, use the lighter skill to create the Lighter CCTP deposit intent:
POST /v3/portfolio/lighter/deposit
That endpoint returns the actual Lighter intent address to receive the USDC transfer for venue credit.
Version History
- 85f77be Current 2026-08-02 21:45


