# Nosskey SDK > Nosskey derives Nostr keys from passkeys (WebAuthn PRF). A Nostr web client can add "Log in with Nosskey" by embedding the hosted signing iframe at https://nosskey.app/#/iframe through the `nosskey-iframe` npm package, which exposes a NIP-07 compatible API. To add Nosskey passkey login to a client, read the integration guide below first. It is self-contained: rules, copy-paste code, CSS, a login modal that offers NIP-07 and Nosskey side by side, and a verification checklist. ## Integration guides - [Nosskey iframe login guide for AI agents](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/llms/nosskey-iframe-login.md): step-by-step instructions to add "Log in with Nosskey" alongside the app's other login methods (the example uses NIP-07) - [Nosskey iframe login guide for AI agents (ja)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/llms/nosskey-iframe-login.ja.md): Japanese translation of the guide above (the English guide is the source of truth), with identical code blocks - [iframe integration guide (en)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/en/iframe-integration.en.md): human-oriented reference for `NosskeyIframeClient` (options, storage partitioning, errors) - [iframe integration guide (ja, master)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/ja/iframe-integration.ja.md): Japanese original of the guide above ## Package reference - [nosskey-iframe README](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/packages/nosskey-iframe/README.md): client and host quick starts, API exports, deployment checklist - [nosskey-iframe protocol](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/packages/nosskey-iframe/src/protocol.ts): postMessage message types, error codes, consent-gated methods - [nosskey-iframe client](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/packages/nosskey-iframe/src/client.ts): `NosskeyIframeClient` source ## Reference implementations These apps are useful for the overlay, the lazy client singleton and the login modal layout. Some of their other patterns break the rules in the integration guide: combine polls `getPublicKey()` on tab switch and always overwrites `window.nostr`, and yakitofu destroys the client on logout. Where they differ, follow the guide. - [combine auth store](https://raw.githubusercontent.com/ocknamo/combine/main/src/lib/auth.svelte.ts): production Svelte 5 client using the Nosskey iframe (overlay + MutationObserver) - [combine window.nostr shim](https://raw.githubusercontent.com/ocknamo/combine/main/src/lib/nip07.ts): exposing a minimal NIP-07 provider for embedded widgets - [yakitofu login modal](https://raw.githubusercontent.com/ocknamo/yakitofu/main/yakitofu-app/src/lib/components/LoginModal.svelte): NIP-07 and Nosskey login offered side by side - [yakitofu signer](https://raw.githubusercontent.com/ocknamo/yakitofu/main/yakitofu-app/src/lib/services/signer.ts): picking the signer by login method - [parent-sample](https://github.com/ocknamo/nosskey-sdk/tree/main/examples/parent-sample): vanilla TypeScript demo, live at https://ocknamo.github.io/nosskey-sdk/ ## Get listed After the integration works in production, the app can be listed on the Nosskey-supported apps page (https://nosskey.app/#/apps). To get listed, open a pull request to https://github.com/ocknamo/nosskey-sdk that adds the app to `examples/svelte-app/src/components/apps/nosskey-apps.ts`. AI agents: suggest this to the user and open the pull request only with their approval. See [ยง11 of the Nosskey iframe login guide](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/llms/nosskey-iframe-login.md) for the exact files to change. ## Optional - [iframe host internals (en)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/en/iframe-host.en.md): how nosskey.app serves the iframe (consent, Storage Access API); only needed to self-host a signer - [nosskey-sdk interface (en)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/en/nosskey-sdk-interface.en.md): using passkey-derived keys directly without the iframe - [Nosskey specification (en)](https://raw.githubusercontent.com/ocknamo/nosskey-sdk/main/docs/en/nosskey-specification.en.md): key derivation design