Weave
Weave is a CLI for crypto invoicing: create USDC invoices, USDT invoices, and cross-token payment quotes, then track settlement status. Use this when you need a crypto invoice generator for agent workflows or operations.
Overview
Use weave for full Weave Cash invoice lifecycle workflows:
- Create an invoice (
weave create) - Generate payment instructions (
weave quote) - Track settlement (
weave statusorweave status --watch)
Guardrails
- Crypto-to-crypto only. Do not introduce fiat currencies, fiat conversions, or fiat-denominated behavior.
- Prefer machine-readable JSON output. Use
--humanonly when explicitly requested. - Never expose secrets (private keys, tokens, JWTs) in outputs.
- Treat network/API calls as failure-prone and handle non-zero exits explicitly.
When Not To Use
- Do not use this skill for fiat invoice or fiat settlement workflows.
- Do not use this skill for editing Weave web UI/frontend code.
- Do not use this skill for unrelated wallet custody or private-key management tasks.
- Do not use this skill when the user wants non-Weave payment rails.
Preflight
- Confirm CLI availability:
weave --help
- Discover runtime token/network support before choosing assets:
weave tokens
- If
weaveis missing, provide compliant install guidance and ask before running:
go install github.com/AryanJ-NYC/weave-cash/apps/cli/cmd/weave@latest
weave --help
If Go is unavailable, use npm fallback:
npm i -g weave-cash-cli
weave --help
If both Go and npm are unavailable, report the missing prerequisites.
Compliant Install Policy
- Prefer
metadata.openclaw.install/metadata.clawdbot.installpackage-manager installs. - Never suggest remote download commands piped directly to a shell interpreter.
- Detect and instruct; do not auto-install dependencies without explicit user approval.
Token And Network Selection
- Always trust live
weave tokensoutput from the runtime binary. - Do not hardcode token/network lists in reasoning.
--receive-networkis required only for receive tokens that support multiple networks.- Network aliases are accepted (for example
Ethereum|ETH,Solana|SOL,Tron|TRXwhen supported by runtime output).
Workflow
1) Create Invoice
Collect:
receive-tokenamount(positive numeric string)wallet-addressreceive-networkonly when required by runtime token/network map- optional buyer fields (
description,buyer-name,buyer-email,buyer-address)
Command:
weave create \
--receive-token USDC \
--receive-network Ethereum \
--amount 25 \
--wallet-address 0x1111111111111111111111111111111111111111
Expected JSON shape:
{
"id": "inv_123",
"invoiceUrl": "https://www.weavecash.com/invoice/inv_123"
}
Capture id for downstream quote/status calls.
2) Generate Quote
Collect:
invoice-idpay-tokenpay-networkrefund-address
Command:
weave quote inv_123 \
--pay-token USDT \
--pay-network Ethereum \
--refund-address 0x2222222222222222222222222222222222222222
Expected fields:
depositAddressdepositMemo(optional)amountInamountOuttimeEstimateexpiresAt
3) Check Status
One-shot:
weave status inv_123
Watch mode:
weave status inv_123 --watch --interval-seconds 5 --timeout-seconds 900
Interpretation:
- Exit
0: reached terminal status (COMPLETED,FAILED,REFUNDED,EXPIRED) - Exit
2: watch timeout (not a command failure) - Exit
1: command/API/network/validation failure
Error Handling
When exit code is 1, surface structured stderr JSON when present. Common API-derived shape:
{
"error": "api message",
"status": 409,
"details": {
"error": "Invoice is not in PENDING status"
}
}
If watch times out (exit 2), treat as incomplete progress, not fatal failure. Recommend extending --timeout-seconds or rerunning a one-shot weave status <invoice-id>.
Runtime Drift Rule
The installed binary and source tree can drift in token support. Always use runtime discovery (weave tokens) when deciding valid token/network combinations.