fastxyz/fast-sdk/key-handover
Claude Code and agent skill by fastxyz/fast-sdk
- community
Checking that the SKILL.md file is still in the repository.
Hand off a Fast account's signing key from the user's wallet to your agent runtime using fast-cli's `authorize` commands. Use when the user wants to authorize you to sign on their behalf for a Fast account.
Install
npx vskill@latest install fastxyz/fast-sdk/key-handoverSKILL.md
Key handover (fast-cli)
Setup
Check if fast-cli is installed:
If it's not installed, install it yourself, as the fast skill's Agent Bootstrap does: tell the user in one line first ("Installing the Fast CLI, @fastxyz/cli."), and don't use sudo. It needs Node.js 20, 22 or newer.
If a global install isn't allowed, run the commands below through npx -y @fastxyz/cli@latest instead of fast.
Flow
1. Generate the request
If the user specified a particular authorize URL (e.g., a dev or staging environment), pass it via --url <URL>.
Show auth_url and the 6-digit request_fingerprint to the user. Tell them to open the URL in their Fast wallet, verify the fingerprint matches, approve, then paste back the encrypted handover code.
STOP and wait. Do not fabricate or guess the handover code. It can only come from the user after they approve in their wallet.
2. Decrypt the code (run exactly one of these)
fast authorize complete consumes the pending request: a second run fails with NO_PENDING_REQUEST, and the user has to approve again. So pick one form and run it once.
To use the wallet with the `fast` CLI (the usual case). authorize complete only decrypts the key; it doesn't add an account, so fast send and fast info balance would keep using the CLI's own account. Decrypt straight into a key file and import it, so the key never appears in your output, the shell history or the process list. Set NAME to an account name that isn't in fast account list yet (the import fails with ACCOUNT_EXISTS otherwise), and set FAST_PASSWORD first if the key should be stored encrypted.
Note the Approved address it prints: that is the wallet the user approved.
If the import fails, the request is already consumed, so don't run authorize complete again. Fix the cause, then rerun only the import, with an explicit --name (without one, the import picks an automatic account-N name):
From then on, use only the account that the successful import returned: check that its data.fastAddress is the Approved address, then pass --account <data.name> to the commands that should use it (or run fast account set-default <data.name> if the user wants it as the default). Never fall back to a name whose import failed: an account with that name already existed and holds a different key. Don't use fast account import --private-key: it puts the key on the command line.
When the key is needed outside the CLI (for example, your own SDK code):
After success, confirm to the user that the key was received. Do not echo the private key back to them — they already have it in their wallet.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/key-handover/SKILL.md
Popularity
- Repository stars
- 1
- Repository forks
- 4
- 7-day trend score
- 3
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/fastxyz/fast-sdk/key-handover)