> ## Documentation Index
> Fetch the complete documentation index at: https://dynamic-docs-feat-sidebar-revamp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Abstraction for Global Wallets

## Overview

If you have account abstraction enabled on your global wallet, users will get a smart wallet created for them on login.

## Custom Paymaster

If you need to use your own paymaster for a global wallet (smart wallet), you can do so by creating your own kernel client and interacting with it.
If you are using the zerodev methods, make sure you have the `@zerodev/sdk` and `@dynamic-labs/ethereum-aa` packages as dependencies in your Global Wallets package.

## Example

```ts
import { createKernelClient } from 'your-gw-wallet-package/zerodev';

const smartWallet = yourGlobalWallet.wallets[0];

const kernelClient = createKernelClient({
  wallet: smartWallet,
  paymaster: 'SPONSOR',
  paymasterRpc: 'https://some-paymaster-rpc.com',
});

const { account } = kernelClient;

  const hash = await kernelClient.sendUserOperation({
    account,
    callData: await account.encodeCalls([
      {
        data: encodeFunctionData({
          abi: contractABI,
          args: [primaryWallet.address],
          functionName: 'mint',
        }),
        to: contractAddress,
        value: BigInt(0),
      },
      {
        data: encodeFunctionData({
          abi: contractABI,
          args: [primaryWallet.address],
          functionName: 'mint',
        }),
        to: contractAddress,
        value: BigInt(0),
      },
    ]),
  })

  return hash
```
