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.
Take a look at our documentation to learn more about permissionless.js.
Install viem as a peer dependency.
Then install permissionless.js:
npm install viem permissionless
bun install viem permissionless
yarn add viem permissionless
// 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",
});
For a full explanation of permissionless.js, please visit our docs page
Build permissionless.js locally with:
bun run build
Distributed under an MIT License. See LICENSE for more information.
Feel free to ask any questions in our Telegram group