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

# Checkout SDK（NFT向けカード決済）

> @0xsequence/checkout を使って、パートナー（例：Transak、Forte）経由でNFT購入時にクレジット／デビットカード決済を追加できます。

<Warning>
  カード決済処理は**パートナー**によって行われます。導入には、カード決済有効化前にパートナーとの**KYB**および**コントラクトの許可リスト登録**が必要です。Sequenceは決済処理の引受や運営は行いません。
</Warning>

<Info>
  対応プロセッサー：<strong>Transak</strong> および <strong>Forte</strong>。
  主に<strong>主要なEVMチェーン</strong>をカバーしており、詳細はパートナーによります。パートナーの判断で新しいEVMチェーンの追加も検討されます。まずは<strong>Sequenceにご連絡</strong>いただければ、適切なパートナーをご紹介します。
</Info>

## Checkout SDKを使うタイミング

* **ERC-1155 / ERC-721**アイテムを販売しており、暗号資産に加えて**カード決済**も提供したい場合。
* パートナーの**KYB**および**許可リスト登録**を完了できる場合。
* 支払い方法の選択や購入処理をまとめて行える**ドロップインモーダル**を利用したい場合。

## インストール方法

```bash theme={null}
pnpm add @0xsequence/checkout @0xsequence/connect
```

## 基本セットアップ

```tsx theme={null}
import { SequenceConnect } from '@0xsequence/connect'
import { SequenceCheckoutProvider } from '@0xsequence/checkout'
import { config } from './config'

export default function App() {
  return (
    <SequenceConnect config={config}>
      <SequenceCheckoutProvider>
        <YourRoutes />
      </SequenceCheckoutProvider>
    </SequenceConnect>
  )
}
```

## 例：カスタムコントラクト呼び出し

```tsx theme={null}
import { useAccount } from 'wagmi'
import { useSelectPaymentModal, type SelectPaymentSettings } from '@0xsequence/checkout'
import { encodeFunctionData } from 'viem'

export function CustomBuy() {
  const { address } = useAccount()
  const { openSelectPaymentModal } = useSelectPaymentModal()

  const onClick = () => {
    if (!address) return

    const chainId = 137
    const salesContract = '0xSaleContract'
    const currency = '0xUSDC'
    const collection = '0xERC1155'
    const price = '20000' // align with your contract's decimals

    const erc1155MintAbi = [{ /* ...mint signature matching your contract... */ }]
    const txData = encodeFunctionData({
      abi: erc1155MintAbi,
      functionName: 'mint',
      args: [address, /* tokenIds[] */, /* amounts[] */, /* data */, currency, price, /* proof */]
    })

    const settings: SelectPaymentSettings = {
      chain: chainId,
      targetContractAddress: salesContract,
      recipientAddress: address,
      currencyAddress: currency,
      collectionAddress: collection,
      price,
      collectibles: [{ tokenId: '1', quantity: '1' }],
      // creditCardProviders: ['transak', 'forte'],
      onSuccess: (txHash) => console.log('success', txHash),
      onError: (err) => console.error(err),
      txData,
    }

    openSelectPaymentModal(settings)
  }

  return <button onClick={onClick}>Buy (custom)</button>
}
```

## パートナー設定（カード）

<Steps>
  <Step title="Sequenceに連絡">
    ご利用用途についてSequenceまでご相談ください。適切な場合は<strong>Transak</strong>または<strong>Forte</strong>をご紹介します。
  </Step>

  <Step title="パートナーアカウント作成 & KYB">
    対応プロバイダー（例：TransakまたはForte）でアカウントを作成し、KYBを完了してください。
  </Step>

  <Step title="コントラクトの許可リスト登録">
    カード決済で利用する販売コントラクトをパートナーに許可リスト登録してもらってください。
  </Step>

  <Step title="プロバイダーの設定">
    利用するパートナーを限定したい場合は、<code>creditCardProviders</code>で許可プロバイダーを指定します。
  </Step>

  <Step title="本番公開">
    パートナー要件に従い<strong>主要なEVMチェーン</strong>で有効化し、実際のカードで購入テストを行ってください。
  </Step>
</Steps>

<Info>
  暗号資産のみの購入や「任意のトークン／チェーン」からの支払いには、<a href="/solutions/payments/trails">Trails</a>をご利用ください。Checkout SDKはNFT購入の**カード決済**に特化しており、Trailsやウォレット決済と併用できます。
</Info>

## 参考情報

* [Web SDKチェックアウトガイド](/sdk/web/wallet-sdk/embedded/guides/checkout)
* [Trails概要](/solutions/payments/trails)
