> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Other Use Cases

> Access the Coinbase Wallet provider from Wagmi for advanced functionality like Sub Accounts, Spend Permissions, and more

Learn how to access the Coinbase Wallet provider through Wagmi to unlock advanced Coinbase Wallet features beyond basic authentication and payments.

## Prerequisites

Make sure you have [set up Wagmi with Coinbase Wallet](/coinbase-wallet/framework-integrations/wagmi/setup) before following this guide.

## Getting the Provider

The key to accessing advanced Coinbase Wallet functionality is getting the provider from your Wagmi connector. Once you have the provider, you can use any Coinbase Wallet RPC method.

<CodeGroup>
  ```tsx Hook lines wrap expandable theme={null}
  // hooks/useBaseAccountProvider.ts
  import { useConnections } from 'wagmi'
  import { useEffect, useState } from 'react'
  import { EIP1193Provider } from 'viem'

  export function useBaseAccountProvider() {
    const connections = useConnections()
    const [provider, setProvider] = useState<EIP1193Provider | null>(null)

    useEffect(() => {
      const connection = connections[0]

      if (!connection) {
        setProvider(null)
        return
      }

      connection.connector.getProvider().then((provider) => {
        setProvider(provider as EIP1193Provider)
      })
    }, [connections])

    return provider
  }
  ```

  ```tsx Component lines wrap expandable theme={null}
  // components/BaseAccountFeatures.tsx
  import { useBaseAccountProvider } from '../hooks/useBaseAccountProvider'
  import { useAccount } from 'wagmi'

  export function BaseAccountFeatures() {
    const { address, isConnected } = useAccount()
    const provider = useBaseAccountProvider()

    const callProviderMethod = async (method: string, params: any[]) => {
      if (!provider) {
        console.error('Provider not available')
        return
      }

      try {
        const result = await provider.request({
          method,
          params
        })
        console.log(`${method} result:`, result)
        return result
      } catch (error) {
        console.error(`${method} error:`, error)
        throw error
      }
    }

    if (!isConnected) {
      return <p>Please connect your wallet to access Coinbase Wallet features</p>
    }

    return (
      <div className="space-y-4">
        <h2 className="text-xl font-bold">Coinbase Wallet Features</h2>
        <p className="text-gray-600">
          Connected with Coinbase Wallet provider. You can now access advanced features.
        </p>
      </div>
    )
  }
  ```
</CodeGroup>

## Available Use Cases

Once you have the provider, you can access all Coinbase Wallet functionality:

### Sub Accounts

Create and manage child accounts for improved UX.

**Learn more:** [Sub Accounts Guide](/coinbase-wallet/improve-ux/sub-accounts) | [Sub Accounts RPC Method](/coinbase-wallet/reference/core/provider-rpc-methods/wallet_addSubAccount)

### Spend Permissions

Allow apps to spend on behalf of users with predefined limits.

**Learn more:** [Spend Permissions Guide](/coinbase-wallet/improve-ux/spend-permissions) | [Spend Permissions Reference](/coinbase-wallet/reference/spend-permission-utilities/requestSpendPermission)

### Batch Transactions

Execute multiple transactions in a single user confirmation.

**Learn more:** [Batch Transactions Guide](/coinbase-wallet/improve-ux/batch-transactions) | [`wallet_sendCalls` Reference](/coinbase-wallet/reference/core/provider-rpc-methods/wallet_sendCalls)

### Gasless Transactions

Sponsor gas fees for your users.

**Learn more:** [Gasless Transactions Guide](/coinbase-wallet/improve-ux/sponsor-gas/paymasters) | [Coinbase Developer Platform Paymaster](https://docs.cdp.coinbase.com/paymaster/introduction/welcome)

### Full List of Provider Methods and Capabilities

Access the full list of Coinbase Wallet provider methods and capabilities.

**Learn more:** [Provider RPC Methods](/coinbase-wallet/reference/core/provider-rpc-methods/request-overview) | [Capabilities](/coinbase-wallet/reference/core/capabilities/overview)
