webauthn-prf-wallet
Installation
SKILL.md
WebAuthn PRF Wallet
A reusable pattern for deriving an Ethereum private key from a user's passkey entirely on the client, with the key never leaving an isolated iframe. This skill captures the implementation from the 1Shot Payments app, distilled so that it can be dropped into any web application.
What you get:
- A deterministic
passkey ⇒ EVM private keyderivation that produces the same wallet every time the user authenticates with the same passkey. - An isolated wallet iframe that holds the derived key in memory and signs transactions via a narrow RPC surface — the key is never reachable from the parent page's JavaScript, substantially reducing XSS/supply-chain risk.
- Platform support gating (PRF is not universally available) with a LongBlob + recovery-phrase fallback so users on incompatible authenticators can still have an account.
What you do NOT get from this skill alone:
- A product. You still need to wire up registration UI, session management, a relying party (RP) configuration, and whatever use case you're building (signing, payments, delegations, etc.).
- A server. The skill shows what the server must do (challenge storage, signature verification) but does not prescribe the stack — Next.js is shown as an example in
references/nextjs-example.md.
Quick Reference
Detailed references — read the one(s) relevant to your task: