WebAuthn Signer
The WebAuthn (passkeys) signer signs with a single passkey. Read the passkeys doc for a more detailed intro to passkeys.
API
import { toWebAuthnKey, toWebAuthnSigner, WebAuthnMode, WebAuthnSignerVersion} from "@zerodev/permissions/signers"
const passkeyName = "Key Name" // any name you want
const passkeyServerUrl = "..." // get this from ZeroDev dashboard
const mode = WebAuthnMode.Register // can also be "login" if you are using an existing key
const webAuthnKey = await toWebAuthnKey({
passkeyName,
passkeyServerUrl,
mode,
passkeyServerHeaders: {}
})
const webAuthnSigner = await toWebAuthnSigner(publicClient, {
webAuthnKey,
webAuthnSignerVersion: WebAuthnSignerVersion.V0_0_2
})
const validator = toPermissionValidator(publicClient, {
entryPoint,
kernelVersion,
signer: webAuthnSigner,
policies: [
// ...
],
})
For the params:
passkeyName
can be any namepasskeyServerUrl
is a passkey server URL. You can get it from the ZeroDev dashboard.mode
is eitherregister
orlogin
, depending on whether you are creating a new key or using an existing key.