# Functor > Non-custodial agentic wallets with on-chain session-key delegation. ## Docs - [Acknowledgments](/acknowledgments): Functor Keystore sits on top of wallet infrastructure: smart accounts, session keys, relayers, validator hooks. - [Claude Skill](/skill): Functor ships a [Claude Code skill](https://docs.anthropic.com/en/docs/claude-code/skills) so any Claude-powered agent can build with `@functornetwork/agentic-wallet` correctly out of the box. The skill teaches Claude when to reach for the SDK, the six core functions, the common workflows, and the gotchas that bite at integration time. - [createPasskeyWallet](/sdk/create-passkey-wallet): Creates a smart-account wallet whose admin authority is a passkey (Face ID, Touch ID, Windows Hello, hardware security key). The private key never leaves the device's secure hardware. - [createWallet](/sdk/create-wallet): Creates a smart-account wallet for a signer. The signer's key lives wherever you keep it (env var, OS keychain, hardware wallet). Functor never sees it. - [execute](/sdk/execute): Submit one or more calls from a wallet. `execute` is overloaded: admin path takes `(wallet, signer, calls)`, session path takes `(session, calls)`. - [grantSession](/sdk/grant-session): Grant a scoped session key for a wallet. The admin signer authorizes the session on-chain; from that point forward the session can act on the wallet within its permissions, enforced on-chain. - [recoverFromPasskey](/sdk/recover-from-passkey): Recover a passkey-backed wallet using on-chain state and the OS keychain. **Browser only.** - [revokeSession](/sdk/revoke-session): Revoke a session key from a wallet on-chain. After confirmation, the session's next execute attempt reverts at validation. Effect is global and immediate. No off-chain coordination required. - [ensureKeyCached](/sdk/sync-to-l2): A session you granted via [`grantSession`](/sdk/grant-session) is registered in the [Keystore](/concepts/keystore) on L1 (Sepolia). For another chain to honor that session, the registry state has to be mirrored to an L2 cache on that chain — `ensureKeyCached` does that. - [MCP Server](/mcp): `@functornetwork/mcp` exposes the SDK as an MCP server. AI hosts like Claude Code, Cursor, and Continue can use it to create wallets, grant sessions, and execute transactions through tools or slash commands. - [Install](/mcp/install): That's it. Restart Claude Code; tools and slash commands become available. - [MCP Tools](/mcp/tools): The Functor MCP server exposes 11 tools. AI hosts call them by name; users can also invoke them as slash commands via the prompt interface (e.g. `/functor-agentic-wallet:create-wallet`). - [Getting Started · Passkey Wallet](/getting-started/passkey): 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. - [Getting Started · Private-Key Wallet](/getting-started/private-key): The path for agents, scripts, and backend services. Anywhere a passkey doesn't make sense. - [How Functor is Different](/concepts/comparison): There are plenty of "agentic wallet" products. Most of them solve the same surface problem (letting an AI act on a user's wallet) but they all store the authorization state in places only their own stack can read. - [Keystore](/concepts/keystore): **Keystore is a public on-chain registry.** For every Functor wallet, it stores which keys are currently authorized to act on it. Anyone (any app, any agent, any chain that bridges to it) can read this state and verify authority without a vendor in the middle. - [Sessions](/concepts/sessions): A **session** is a scoped, time-bounded delegation from a wallet's admin key to another key. The session key can act on the wallet, but only within the granted permissions, and only until the expiry.