Skip to main content
Card processing is handled by partners. Integration requires KYB and contract allowlisting with the partner before card payments are enabled. Sequence does not underwrite or operate the processor.
Supported processors: Transak and Forte. Coverage generally includes major EVM chains and is partner-dependent. Partners may consider adding new EVM chains based on opportunity. To begin, contact Sequence and we’ll introduce you to an appropriate partner.

When to use Checkout SDK

  • You sell ERC-1155 / ERC-721 items and want a card option in addition to crypto.
  • You will complete partner KYB and allowlisting.
  • You want a drop-in modal that handles payment method selection and purchase.

Installation

pnpm add @0xsequence/checkout @0xsequence/connect

Basic setup

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>
  )
}

Example: ERC-1155 primary sale

import { useAccount } from 'wagmi'
import { useERC1155SaleContractCheckout } from '@0xsequence/checkout'

export function BuyButton() {
  const { address } = useAccount()
  const { openCheckoutModal } = useERC1155SaleContractCheckout({
    chain: 137, // destination chainId
    contractAddress: '0xSaleContract',  // primary sale contract
    collectionAddress: '0xERC1155',     // collection
    wallet: address!,                   // recipient
    items: [{ tokenId: '1', quantity: '1' }],
    // Optional: restrict card providers if your integration requires it
    // creditCardProviders: ['transak', 'forte'],
    onSuccess: (txHash) => console.log('success', txHash),
    onError: (err) => console.error(err),
  })

  return <button onClick={() => address && openCheckoutModal()}>Buy</button>
}

Example: custom contract call

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>
}

Partner setup (cards)

1

Contact Sequence

Reach out to Sequence to discuss your use case; we will introduce you to Transak or Forte as appropriate.
2

Partner account & KYB

Create an account with a supported provider (e.g., Transak or Forte) and complete KYB.
3

Allowlist contracts

Ask the partner to allowlist the sale contract(s) you will charge through card flows.
4

Configure providers

Pass allowed providers via creditCardProviders if you need to scope usage to your approved partner(s).
5

Go live

Enable on major EVM chains per partner requirements and test a full purchase with a real card.
For crypto-only purchases, or to pay from “any token/chain”, use Trails. Checkout SDK focuses on the card path for NFT purchases and can coexist with Trails and wallet flows.

References

I