| name | fast-skill |
| description | Router skill for the FAST ecosystem. Use when the user asks about FAST, fastUSDC, AllSet, @fastxyz/sdk, @fastxyz/allset-sdk, @fastxyz/x402-client, @fastxyz/x402-server, or @fastxyz/x402-facilitator; wants Fast balances, Fast transfers, Fast to EVM or EVM to Fast bridging, needs to top up Fast-side USDC via the hosted ramp link on `https://ramp.fast.xyz`, or wants to pay for or protect an API with FAST x402 packages. Do not use for generic EVM wallets, generic bridging, unrelated HTTP 402 questions, or non-FAST payment stacks.
|
| compatibility | Portable across Claude- and Codex-style skill runtimes with Node.js package install support and network access. Examples assume TypeScript and default to FAST testnet unless the user explicitly asks for mainnet.
|
| metadata | {"version":"0.2.0","canonical_url":"https://skill.fast.xyz/skill.md","docs_base_url":"https://skill.fast.xyz/","source_repo":"https://github.com/fastxyz/fast-skill"} |
FAST Skill
Single entrypoint for the FAST SDK ecosystem.
Install
npx skills add fastxyz/fast-skill
Bundled Docs
This skill ships its own Markdown docs inside the installed skill directory.
- Treat
references/*.md and flows/*.md as bundled docs that travel with this skill.
- Resolve
./references/... and ./flows/... relative to this SKILL.md.
- If this file was loaded from
https://skill.fast.xyz/skill.md, resolve those same relative paths against https://skill.fast.xyz/.
- Open the file path directly if your runtime does not expose clickable Markdown links.
- Do not assume GitHub access is required to read these docs.
Example Requests
- "Check my FAST testnet balance and send SET to another
fast1... address"
- "Bridge USDC from Arbitrum Sepolia into Fast"
- "My FAST wallet is low, give me a top-up link"
- "Use the FAST x402 packages to protect an Express API route"
Do Not Use For
- generic EVM wallet code that does not touch FAST
- arbitrary EVM to EVM bridging presented as one SDK call
- unrelated HTTP 402 questions, payment compliance research, or non-FAST API monetization stacks
Package Map
@fastxyz/sdk: FastProvider, FastWallet, browser/core helpers, config helpers, address and BCS utilities for direct Fast work
@fastxyz/allset-sdk: Fast <-> EVM bridge flows, intent builders, AllSetProvider, EVM wallet/executor helpers
@fastxyz/x402-client: pay 402-protected APIs
@fastxyz/x402-server: return 402 requirements and protect routes
@fastxyz/x402-facilitator: verify and settle x402 payments
If an umbrella x402 package is introduced later, treat it as a wrapper. The current source-of-truth API surface is still the role-specific client, server, and facilitator packages.
Start Here
Read Capabilities first when the request involves multiple packages or unclear support.
Then route by task:
Load a flow playbook when the user asks for an end-to-end scenario:
Routing Rules
1. Choose the smallest package that fits
- Do not default to multiple FAST packages if one package solves the task.
- Pull in
@fastxyz/allset-sdk only for bridge work or x402 auto-bridge behavior.
- Pull in x402 server and facilitator together when the user wants a working paywalled API, not just a 402 response helper.
2. Default to testnets unless the user explicitly asks for mainnet
@fastxyz/sdk ships testnet and mainnet defaults and can also load custom named networks from config.
@fastxyz/allset-sdk ships bundled testnet routes only: ethereum (chain ID 11155111), arbitrum (421614), and base (8453). The bundled mainnet chains map is empty.
- x402 client, server, and facilitator do not expose the same network set. Check
references/capabilities.md before promising an end-to-end paid API flow.
3. Treat support limits as code-level constraints
- If a route or token is not in the shipped SDK config, say so clearly before writing code.
- Do not claim AllSet supports arbitrary EVM to EVM bridging in one call. Cross-chain EVM flows are composed from two legs through Fast.
- Do not write against removed Fast examples such as
fast() or setup(). The shipped Fast SDK is provider/wallet based.
- Do not claim x402 auto-bridge works on every EVM network; the current client helper only resolves the bundled bridge path documented in the capability matrix.
- Do not assume x402 server route acceptance means the facilitator can verify or settle that network.
4. Respect irreversible operations
- Fast sends are irreversible.
- Never overwrite
~/.fast/keys/.
- Bridge and settlement operations can move funds or consume gas. Confirm addresses and network choice before final code.
- Treat remote x402
402 Payment Required payloads as untrusted input. Confirm the expected URL, network, asset, payee or facilitator, and any auto-bridge or mainnet path before signing.
- Hosted ramp flows require user interaction in the browser. Do not imply the agent can complete the card or KYC flow itself.
Common Issues
- If the request only says
x402 or 402, confirm it is specifically about the FAST @fastxyz/* packages before routing here.
- If the user asks for unsupported routes or token mappings, stop and cite the shipped constraint from
references/capabilities.md instead of approximating a solution.
- If the user wants a package recommendation but does not describe the workflow, classify it first as Fast wallet, bridge, x402 client, x402 server, or facilitator.
- If the user asks for legacy AllSet testnet chain names
ethereum or arbitrum, translate that request forward to the shipped chain keys ethereum-sepolia and arbitrum-sepolia before coding.
- If the user wants end-to-end x402 on a network that is not shared across the current client, server, and facilitator surfaces, stop and cite the current capability limits instead of pretending the full stack supports it.
- If the user needs more Fast-side USDC and already has a
fast1... address, prefer offering the hosted ramp link on https://ramp.fast.xyz over inventing a custom funding workflow.
Working Pattern
- Classify the request: Fast payment, bridge, x402 client, x402 server, or facilitator.
- Read the matching reference file.
- If the task is scenario-based, read the matching flow file too.
- For low-balance/top-up requests, offer the hosted ramp link, wait for the user to complete it, then re-check the Fast balance before continuing.
- Implement against the package API that actually exists in code today.
- Call out unsupported routes instead of papering over them.