Getting Started · Passkey Wallet
The default path for end-user wallets. The wallet is authorized by a passkey (Face ID, Touch ID, Windows Hello, or a hardware security key). The private key never leaves the device's secure hardware.
This is what most consumer apps should build on.
Install
npm install @functornetwork/agentic-wallet viemCreate the wallet
import { createPasskeyWallet } from "@functornetwork/agentic-wallet";
const wallet = await createPasskeyWallet({
rpId: "myapp.example",
user: {
name: "alice@example.com",
displayName: "Alice",
},
});
console.log(wallet.address);The user sees a single biometric prompt. After that, you have a fully usable smart-account wallet. wallet.signer is drop-in compatible with every other SDK function.
Browser only. Uses navigator.credentials (WebAuthn).
Run a transaction
import { execute } from "@functornetwork/agentic-wallet";
const result = await execute(wallet, wallet.signer, {
to: "0xRecipient...",
value: 1_000_000_000_000_000n, // 0.001 ETH
});
console.log(result.status, result.transactionHash);Each execute triggers one biometric prompt to sign. No popups, no extensions, no seed phrase.
Returning users
When a user comes back to your app on the same device (or any device with their passkeys synced), recover their wallet without any state of your own:
import { recoverFromPasskey } from "@functornetwork/agentic-wallet";
const wallet = await recoverFromPasskey({ rpId: "myapp.example" });
// OS shows the passkey picker, biometric prompt, done.Two on-chain reads, one biometric. No localStorage, no server side-channel, no seed phrase. The user's wallet handle is rebuilt from on-chain state.
What's next
- Grant a session to an agent. Let an AI act on this wallet with scoped permissions.
- Keystore, the public registry that makes recovery and cross-app verification possible.
- Private-key wallets, the other wallet path, for agents and scripts.