JSPM

permissionless

0.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 64949
  • Score
    100M100P100Q146517F
  • License MIT

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (permissionless) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    permissionless.js

    Node Version

    permissionless.js is a TypeScript library built on top of viem for deploying and managing ERC-4337 smart accounts, interacting with bundlers and paymasters, and leveraging custom signers.

    Features

    • High-Level Smart Account Support: We support a high-level API for deploying and managing smart accounts, including some of the most popular implementations (Safe, Kernel, Biconomy, etc.)
    • Bundler Support: We support all bundler actions following ERC-4337.
    • Gas Sponsorship: We support paymaster actions to allow you to easily sponsor gas fees.
    • User Operation Utility Functions: We provide many low-level utility functions useful for dealing with User Operations.
    • Modular and Extensible: We allow you to easily create and plug in your own smart account systems, bundlers, paymasters, and signers.
    • Built on & for viem: permissionless.js is designed to be a thin wrapper around viem, maintaining the same style and overall feel viem provides.
    • and a lot more...

    Documentation

    Take a look at our documentation to learn more about permissionless.js.

    Installation

    Install viem as a peer dependency.

    Then install permissionless.js:

    npm install viem permissionless
    bun install viem permissionless
    yarn add viem permissionless

    Optional Dependencies

    For WebAuthn functionality (passkeys), you'll also need to install the ox package:

    npm install ox
    bun install ox
    yarn add ox

    Note: The ox package is optional and only required if you plan to use WebAuthn/passkey features. The library will throw a helpful error message if you try to use WebAuthn functionality without installing ox.

    Quick Start

    // Import the required modules.
    import { createSmartAccountClient } from "permissionless";
    import { createPaymasterClient } from "viem/account-abstraction";
    import { sepolia } from "viem/chains";
    import { http } from "viem";
    
    const paymaster = createPaymasterClient({
      transport: http(`https://api.pimlico.io/v2/sepolia/rpc?apikey=${pimlicoApiKey}`)
    })
    
    const account = toSimpleSmartAccount<entryPointVersion>({
      client: getPublicClient(anvilRpc),
      owner: privateKeyToAccount(generatePrivateKey())
    })
    
    // Create the required clients.
    const bundlerClient = createSmartAccountClient({
      account,
      paymaster, 
      chain: sepolia,
      bundlerTransport: http(
        `https://api.pimlico.io/v2/sepolia/rpc?apikey=${pimlicoApiKey}`,
      ), // Use any bundler url
    });
    
    // Consume bundler, paymaster, and smart account actions!
    const userOperationReceipt = await bundlerClient.getUserOperationReceipt({
      hash: "0x5faea6a3af76292c2b23468bbea96ef63fb31360848be195748437f0a79106c8",
    });

    Contributors

    For a full explanation of permissionless.js, please visit our docs page

    Build permissionless.js locally with:

    bun run build

    License

    Distributed under an MIT License. See LICENSE for more information.

    Contact

    Feel free to ask any questions in our Telegram group