t2000-receive — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited t2000-receive (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Surface the wallet address (and optionally a Payment Kit URI with a pre-filled amount + memo) so anyone with a Sui wallet can send tokens to the Agent Wallet. Two surfaces:
sui:pay?…), a nonce, plus an optional amount / currency / memo / label. Use this when the LLM is building a payment-request flow.t2 fund is a pure read with no authentication step.t2 fund # address + ANSI QR + share line
t2 fund --qr-only # just the QR (e.g. for embedding in a screenshot)
t2 fund --key <path> # custom wallet path
t2 fund --json # { address, qrEncodedFor, valuePromise }CLI output (default):
Address 0x55b223b0...0dd1b6
Scan to send tokens to this wallet:
█▀▀▀▀▀█ ▄ ▀▄ █ ▄▀ ▄ █▀▀▀▀▀█
█ ███ █ █ ▀ █ ▄▄ ▀▀ █ ███ █
█ ▀▀▀ █ ▀▄▀▄█▀ ▀▄ ▀▄ █ ▀▀▀ █
▀▀▀▀▀▀▀ ▀ █▀▀ █ ▀ ▀ ▀▀▀▀▀▀▀▀▀
... (truncated)
Or share `0x55b223b0...0dd1b6` directly.The CLI prints to ANSI — it will look right in any terminal but won't render as image data in MCP responses. Use the MCP tool for a structured JSON response.
t2000_receive)// Request
{
"amount": 10, // optional — pre-fills the sender's tx amount
"currency": "USDC", // optional — default USDC, also accepts USDsui / SUI
"memo": "Coffee on me", // optional — encoded into the Payment Kit URI
"label": "Coffee fund" // optional — human-readable label for the URI
}
// Response
{
"address": "0x55b223b0...0dd1b6",
"uri": "sui:pay?recipient=0x55b223b0...&amount=10000000&coinType=0xdba34672...::usdc::USDC&nonce=abc-123&label=Coffee+fund&message=Coffee+on+me",
"nonce": "abc-123-uuid",
"amount": 10,
"currency": "USDC",
"memo": "Coffee on me",
"label": "Coffee fund"
}The Payment Kit URI follows the Sui Payment Kit spec — every Sui wallet (Mysten, Phantom, Suiet, Slush, Sui Wallet Standard) can scan/parse it. If you omit amount, the URI is a "bring your own amount" link that the sender fills in.
| Args | URI shape |
|---|---|
| no amount, no memo, default currency | sui:0x<address> |
| no amount, custom currency or memo | sui:0x<address>?currency=USDsui&memo=… |
| with amount | sui:pay?recipient=0x<address>&amount=<raw>&coinType=<full-type>&nonce=<uuid>[&label=…][&message=…] |
The amount-bearing form uses raw on-chain units (USDC: × 10^6, SUI: × 10^9) so wallets don't have to do their own conversion. The nonce is a UUID v4 minted at request time; senders include it in the tx metadata so the receiving agent can correlate the inflow back to the request.
| Need | Use |
|---|---|
| "What's my wallet address?" | t2 fund (CLI) or t2000_address (MCP — address only, no QR) |
| "Show me the QR" | t2 fund (CLI prints ANSI QR) |
| "Generate a payment link for $10" | t2000_receive { amount: 10, currency: "USDC" } (MCP) |
| "Generate a 'tip jar' link" (no amount) | t2000_receive { memo: "Tip jar", label: "Tip funkii" } (MCP) |
0x2::balance::send_funds allowlist).t2 balance (CLI) or t2000_balance (MCP) to verify. Inflows show up within ~1 block (~500 ms).t2000-send skill.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.