Add wallet skill: use the Stellar CLI as a wallet#49
Add wallet skill: use the Stellar CLI as a wallet#49aristidesstaffieri wants to merge 5 commits into
Conversation
Add a `wallet` skill that documents using the Stellar CLI as a wallet by composing existing commands, closing the protocol/usability gap called for in the Agentic Wallet CLI epic (stellar/stellar-cli#2628, #2624). The skill is a SKILL.md entry plus three task-focused companions: - SKILL.md: composition map (wallet operation -> command), prerequisites (install, RPC/relayer config), and the structured output/error contract - keys.md: key lifecycle, private-key security, funding, selection - accounts-and-tx.md: balances/readiness, trustlines, tx diagnosis, sign + submit, and account draining - tokens.md: the stellar token client (SEP-41/SAC), trusted token lists, error remediation, and asset anatomy Wire it into the site: new "Wallets" filter category and a SKILL_CARD_SOURCES entry so it renders on skills.stellar.org and in llms.txt. Commands verified against stellar-cli 25.1.0 on testnet. Surface still gated on in-flight work is documented as forthcoming: the `stellar token` client (#2620), structured JSON output and the {status,result,error} receipt (#2622), and relayer submission (#2623).
Add an inline "Stellar account & transaction model" section to accounts-and-tx.md covering the mechanics the command pipeline handles by default, so readers can diagnose and recover when a default isn't enough. Closes a gap against design-doc goal #1 ("sane defaults for fees, sequences, retry, error handling") and its Idempotency row: - minimum balance & reserves (why you can't spend to zero) - sequence numbers & idempotency (txBAD_SEQ; check inclusion before retry) - fees, surge pricing & fee-bumps (max-bid model, CAP-15, relayer link) - transaction lifecycle: time bounds, poll-to-inclusion, safe retries Wire cross-links: readiness checklist and drain ordering -> reserves; tokens.md insufficient-balance row -> reserves; fee-bump -> relayer section; lifecycle -> tx diagnosis. Also fix a deprecated command surfaced during testnet verification: `stellar contract asset id` -> `stellar contract id asset`.
Add a "Working with Soroban protocols (DeFi)" section to the wallet SKILL.md that draws the boundary — this skill covers wallet primitives (value transfer, trustlines, tx mechanics), not protocol-specific logic — and points readers to the DeFi skills when they need to understand how a Soroban protocol works or craft the transaction(s) to act on it (swap, lend/borrow, vault deposit/withdraw, provide liquidity). Link the section from Related skills and point at the forthcoming ../defi/ playbooks. Supports design-doc goal #2 (skills to discover and interact with on-chain protocols).
|
There was a problem hiding this comment.
Pull request overview
Adds a new “wallet” skill to the Stellar Skills collection, documenting how to use the stellar CLI for key management, account readiness, transfers, trustlines, token operations, and transaction diagnosis, and surfaces it on the skills landing page under a new “Wallets” filter.
Changes:
- Introduces the
skills/walletskill overview plus supporting docs for keys, accounts/transactions, and tokens. - Adds a new “Wallets” category/filter and a “CLI Wallet” card entry to the site skills registry.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/wallet/SKILL.md | Adds the wallet skill entrypoint, prerequisites, structured JSON guidance, and navigation to the wallet subtopics. |
| skills/wallet/keys.md | Documents CLI key lifecycle operations and private-key safety guidance. |
| skills/wallet/accounts-and-tx.md | Documents account readiness, reserves/fees/sequence mechanics, trustlines, building/signing/sending, and diagnosis flows. |
| skills/wallet/tokens.md | Documents stellar token usage: target resolution, common subcommands, examples, and error remediation. |
| site/src/data/skills.ts | Registers the new “Wallets” filter and adds the “CLI Wallet” card entry pointing at the new skill. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- site/src/app/styles.scss: add "Wallets" to the filter whitelist so the category actually shows its cards when selected (the @each list mirrors FILTERS minus "All" and was missing the new entry) - skills/wallet/SKILL.md: fix typo "provicers" -> "providers" - skills/wallet/accounts-and-tx.md: move the "readiness" anchor onto its own line to match the other anchors Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
I stress tested this skill by giving fresh agents (no Stellar context) only the SKILL.md URL, real wallet tasks, and accounts-and-tx.md
keys.md
SKILL.md
tokens.md
What held up well: the file structure and relative links (every agent navigated them cold), the keys lifecycle, the |
Fresh agents given only the wallet SKILL.md, real tasks, and --help
completed every flow but had to escape into --help to do it, and hit a
silent 10^7 amount-units error. Reconcile the docs with observed CLI
26.0.0 behavior (verified on-chain on testnet), and settle two framing
decisions: amounts are raw base units everywhere, and state-changing
commands are documented against the target CLI that returns --output
json receipts.
accounts-and-tx.md:
- Label every --amount / --starting-balance as stroops with realistic
values; call out the silent 10^7 trap.
- Add a create-account example; note payment to a non-existent account
fails with NoDestination.
- Add a Named errors section (TxFailed(VecM([OpInner(...)])) dumps) for
NoDestination, NoTrust, Underfunded, InvalidLimit, HasSubEntries, and
note failed txs still charge the fee.
- Fix readiness: fetch returns raw stroops; a missing account succeeds
with entries:[], not an error.
- Distinguish classic assets (always 7-decimal) from SEP-41 tokens
(variable decimals, look up via decimals()).
keys.md:
- Document the stdin pipe for keys add --secure-store (no TTY).
- Note keys rm needs --force non-interactively.
- Correct secure-store: seed-phrase only, never exportable (one-way door).
- Fix keys ls --long (config-file paths, not addresses) and the pubnet
funding note (payment can't fund a new address; use create-account).
SKILL.md:
- Correct the network section: testnet/pubnet/etc. are built-in; reserve
network add for custom/private RPCs.
tokens.md:
- Reframe amounts as raw base units (10^decimals, not always 7; read
decimals() first), consistent with the rest of the CLI.
- Add an interim contract-invoke path until `stellar token` ships.
- Fix the 404 publishing-asset-info link; note the burn-to-issuer
i64::MAX sentinel; point to ../assets for acquiring an issued asset.
@oceans404 thanks for going through this in detail. I've fixed most of these issues in 2f3dd63 for 3 and 10, the doc targets a future version of the CLI where the assumption is that both the |
Summary
Adds a
walletskill that documents using the Stellar CLI (stellar) as a wallet by composing existing commands — key management, funding, balances, account readiness, trustlines, value transfer, thestellar tokenclient, and transaction diagnosis — with structured JSON output and a branchable error contract.Commands were verified against
stellar-cli25.1.0 on testnet. Some of the surface this skill documents is still gated on in-flight CLI work and is called out as forthcoming rather than presented as shipped — see In-progress dependencies below.What's in this PR
skills/wallet/SKILL.md— entry point: wallet-operation → command map, prerequisites (install, RPC/relayer config), and the{status, result, error}output/error contract.skills/wallet/keys.md— key lifecycle, private-key security, funding, and key selection.skills/wallet/accounts-and-tx.md— balances/readiness, trustlines, tx diagnosis, sign + submit, account draining, plus an inline Stellar account & transaction model (reserves, sequence numbers/idempotency, fees & fee-bumps, tx lifecycle).skills/wallet/tokens.md— thestellar tokenclient (SEP-41 / SAC), trusted token lists, error remediation, and asset anatomy.site/src/data/skills.ts— new "Wallets" filter category and aSKILL_CARD_SOURCESentry so the skill renders on skills.stellar.org and in llms.txt.In-progress dependencies
This skill documents CLI surface that is not yet fully shipped. These are flagged as forthcoming in the content so readers aren't misled:
stellar tokenclient (stellar-cli#2620) — the typed SEP-41/SAC client thattokens.mdand several examples depend on (e.g.stellar token balancenoted# (via #2620)).{status, result, error}receipt (stellar-cli#2622) — the output/error contract inSKILL.md.../defi/SKILL.md, which does not exist in this repo yet. The link is intentional forward-routing to that forthcoming skill package.Test plan
stellar-cli25.1.0 on testnetstellar contract asset id→stellar contract id asset)