permissionless_passkeys 0.1.0 copy "permissionless_passkeys: ^0.1.0" to clipboard
permissionless_passkeys: ^0.1.0 copied to clipboard

WebAuthn/Passkeys support for permissionless.dart ERC-4337 smart accounts. Enables biometric authentication with Kernel and Safe accounts using P256 signatures.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2026-02-20 #

Initial release of permissionless_passkeys - WebAuthn/Passkeys support for permissionless.dart ERC-4337 smart accounts.

Added #

  • viem-compatible WebAuthn Account API

    • WebAuthnAccount - Abstract account interface extending WebAuthnAccountOwner from permissionless
    • WebAuthnSignReturnType - Return type with signature and metadata
    • WebAuthnSignMetadata - Authenticator data, client JSON, indices
    • toWebAuthnAccount() - Factory function (matches viem pattern)
    • createWebAuthnAccount() - Dart-idiomatic convenience function
  • Types

    • WebAuthnCredential - Wrapper for WebAuthn credential data with JSON serialization
  • Factory Functions

    • createPasskeyCredential() - Register passkeys with biometrics
    • createWebAuthnAccountFromCredential() - Create account from credential
  • Encoding Functions

    • encodeKernelWebAuthnSignature() - ABI encode signatures for Kernel WebAuthn validator
    • encodeSafeWebAuthnSignature() - ABI encode signatures for Safe WebAuthn signer
    • encodeSafeWebAuthnSignatureRaw() - Encode with explicit timestamps
    • encodeWebAuthnSignerConfig() - Encode signer public key configuration
    • encodeWebAuthnSignerConfigure() - Encode SafeWebAuthnSharedSigner configure call
    • getDummyKernelWebAuthnSignature() - Gas estimation stub for Kernel
    • getDummySafeWebAuthnSignature() - Gas estimation stub for Safe
  • Smart Account Integration

    • WebAuthnAccount can be passed directly to createKernelSmartAccount() as owner
    • WebAuthnAccount can be passed directly to createSafeSmartAccount() as owner
    • Works with Kernel v0.3.x (WebAuthn validator) and Safe v1.4.1/v1.5.0 (shared signer)
  • Tests

    • Comprehensive unit tests for encoding functions
    • Credential serialization tests (JSON round-trip)
    • WebAuthnAccount creation and signing tests
  • Example App

    • Flutter example demonstrating passkey registration
    • Kernel and Safe account creation from WebAuthn credentials
    • Riverpod state management

Fixed #

  • Kernel WebAuthn: Fixed null safety for typeIndex in kernel signature encoding
    • signature.getTypeLocation()! replaced with signature.getTypeLocation() ?? 0
    • Handles undefined typeIndex by defaulting to 0
0
likes
150
points
109
downloads

Publisher

verified publisherfuse.io

Weekly Downloads

WebAuthn/Passkeys support for permissionless.dart ERC-4337 smart accounts. Enables biometric authentication with Kernel and Safe accounts using P256 signatures.

Homepage
Repository (GitHub)
View/report issues

Topics

#account-abstraction #erc4337 #passkeys #webauthn #smart-accounts

Documentation

API reference

License

MIT (license)

Dependencies

flutter, permissionless, web3_signers, web3dart

More

Packages that depend on permissionless_passkeys