How to Add a NFT Smart Contract in the Dashboard and Create a contractId

Submit your NFT smart contract for review and generate a contractId to use with NFT Checkout
View as Markdown

Use this guide to add your NFT smart contract in the Transak Dashboard and generate a contractId for NFT Checkout.

What is contractId?

contractId is a unique identifier for your approved smart contract. You must pass this value when creating an NFT Checkout widget session.

contractId
stringRequired

Unique identifier for your whitelisted smart contract address and network combination.

Prerequisites

  • Access to the Transak Partner Dashboard
  • The target smart contract address
  • The target EVM network
  • The contract ABI for calldata generation

NFT Checkout supports custom smart contracts on EVM-compatible chains. For production approval, Transak may review your contract and audit details before allowing it to be used live.

Step 1: Open NFT Checkout in the Dashboard

1

Log in to the dashboard

Go to dashboard.transak.com and sign in.

2

Select the correct environment

Choose Staging or Production from the environment selector.

3

Open NFT Checkout

Go to the Products section and open NFT Checkout.

Step 2: Add your custom smart contract

Submit the required contract details in the dashboard.

  • Smart contract address
  • Network / chain
  • Collection or project details
  • Any supporting metadata requested by the dashboard flow

For production, keep your contract verification and audit documentation ready if requested during review.

Step 3: Wait for contract approval

The contract must be whitelisted before it can be used in NFT Checkout.

EnvironmentExpected behavior
StagingUsed for testing and faster validation
ProductionSubject to Transak review before live use

If possible, verify the contract on the relevant block explorer before requesting production approval. This generally makes review easier.

Step 4: Copy the generated contractId

Once the contract is approved in the dashboard, Transak generates a contractId for that contract and network pair.

Save this value because you will need it in your widget session payload.

Step 5: Generate calldata for your contract

contractId is required, but it is not enough by itself. NFT Checkout also requires calldata.

Use the dedicated guide for this part:

Important rules:

  • Encode calldata from the ABI of the implementation contract if you use a proxy
  • If your function accepts to, recipient, or buyer, use Transak’s NFT Checkout smart contract address for that chain instead of the end user’s wallet address

Step 6: Use contractId in Create Widget URL

Pass contractId inside widgetParams together with the other NFT Checkout fields.

$curl --request POST \
> --url https://api-gateway-stg.transak.com/api/v2/auth/session \
> --header 'accept: application/json' \
> --header 'access-token: YOUR_ACCESS_TOKEN' \
> --header 'content-type: application/json' \
> --data '{
> "widgetParams": {
> "apiKey": "YOUR_API_KEY",
> "referrerDomain": "yourdomain.com",
> "walletAddress": "USER_WALLET_ADDRESS",
> "isNFT": true,
> "contractId": "YOUR_CONTRACT_ID",
> "cryptoCurrencyCode": "ETH",
> "estimatedGasLimit": 250000,
> "calldata": "0x...",
> "nftData": [
> {
> "imageURL": "https://example.com/nft.png",
> "nftName": "My NFT",
> "collectionAddress": "0x8a20e9e8e736643161ce6a2fe8dd8dd62050cd1e",
> "tokenID": ["1"],
> "price": [0.05],
> "quantity": 1,
> "nftType": "ERC721"
> }
> ]
> }
>}'