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)
Contact Sequence
Reach out to Sequence to discuss your use case; we will introduce you to Transak or Forte as appropriate.
Partner account & KYB
Create an account with a supported provider (e.g., Transak or Forte) and complete KYB.
Allowlist contracts
Ask the partner to allowlist the sale contract(s) you will charge through card flows.
Configure providers
Pass allowed providers via creditCardProviders
if you need to scope usage to your approved partner(s).
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