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

# 기타 활용 사례

> 서브 어카운트, 스펜드 퍼미션 등 고급 기능을 위해 Wagmi에서 Base Account 프로바이더 접근하기

기본 인증과 결제를 넘어 고급 Base Account 기능을 활용하기 위해 Wagmi를 통해 Base Account 프로바이더에 접근하는 방법을 알아보세요.

## 사전 요구 사항

이 가이드를 따르기 전에 [Wagmi와 Base Account를 설정](/base-account/framework-integrations/wagmi/setup)했는지 확인하세요.

## 프로바이더 가져오기

고급 Base Account 기능에 접근하는 핵심은 Wagmi 커넥터에서 프로바이더를 가져오는 것입니다. 프로바이더를 얻으면 모든 Base Account RPC 메서드를 사용할 수 있습니다.

<CodeGroup>
  ```tsx 훅 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 컴포넌트 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>Base Account 기능에 접근하려면 지갑을 연결하세요</p>
    }

    return (
      <div className="space-y-4">
        <h2 className="text-xl font-bold">Base Account 기능</h2>
        <p className="text-gray-600">
          Base Account 프로바이더로 연결되었습니다. 이제 고급 기능에 접근할 수 있습니다.
        </p>
      </div>
    )
  }
  ```
</CodeGroup>

## 사용 가능한 활용 사례

프로바이더를 얻으면 모든 Base Account 기능에 접근할 수 있습니다:

### 서브 어카운트

향상된 UX를 위한 자식 계정을 생성하고 관리합니다.

**더 알아보기:** [서브 어카운트 가이드](/base-account/improve-ux/sub-accounts)

### 스펜드 퍼미션

미리 정의된 한도로 앱이 사용자를 대신해 지출할 수 있도록 허용합니다.

**더 알아보기:** [스펜드 퍼미션 가이드](/base-account/improve-ux/spend-permissions)

### 배치 트랜잭션

단일 사용자 확인으로 여러 트랜잭션을 실행합니다.

**더 알아보기:** [배치 트랜잭션 가이드](/base-account/improve-ux/batch-transactions)

### 가스리스 트랜잭션

사용자의 가스 비용을 대신 지불합니다.

**더 알아보기:** [가스리스 트랜잭션 가이드](/base-account/improve-ux/sponsor-gas/paymasters) | [Coinbase Developer Platform 페이마스터](https://docs.cdp.coinbase.com/paymaster/introduction/welcome)

### 전체 프로바이더 메서드 및 기능 목록

Base Account 프로바이더 메서드와 기능의 전체 목록에 접근합니다.

**더 알아보기:** [CDP 통합](/base-account/framework-integrations/cdp) | [Wagmi 설정](/base-account/framework-integrations/wagmi/setup)
