For Marketplaces with Custom Contracts

Note: All the query parameters marked with *(asterisk) are mandatory to send to successfully load the widget and complete the transaction.

Query ParameterExampleTypeDefault valueDescription
apiKey *4fcd6904-706b-4aff-bd9d-77422813bbb7stringYour API key for authentication.
calldata *ExamplestringThe calldata/hex that needs to be passed to your smart contract in order to execute the required function successfully.
The calldata should contain the method ID of the function to be executed and the values of all the parameters in that function.

How to generate calldata code example

Note: If the function to be executed accepts user's wallet address as a parameter, while generating calldata you need enter the address of Transak's smart contract on that chain as the user's wallet address.

List of Transak Smart Contract addresses
contractId*65eaccc7bc21f2780bcc442astringcontractId is the unique identifier for a combination of your smart contract address and network.

Contact our sales team to generate your contractId and start your integration.
cryptoCurrencyCode *ETHstringThe code of the cryptocurrency that your smart contract accepts in order to execute the function. You can find the list of supported cryptocurrencies here.
estimatedGasLimit *54589numberGas limit that needs to be filled while executing the transaction on your smart contract. You need to estimate the gas limit it will cost to execute the particular function on your smart contract.

Please refer to Ethereum Gas Docs here for more info on this for EVM compatible chains.

Note: This cannot be 0
nftData *ExampleobjectNFT data is an array that consists of only a single element.

It contains: 
• imageURL (optional)
• nftName (optional)
• collectionAddress - address of NFT collection
• tokenID - array of all token IDs
• price - Price of NFT needs to be in crypto here
• quantity - Total quantity of NFTs in order
• nftType - ERC721 or ERC1155

Refer to example for code structure.

Note: We will consider quantity as the reference to determine the number of NFTs to be purchased. If quantity is sent as 1 and there are 4 token IDs, we’ll only consider the first token ID and price. And the length of price and tokenID array should be same and equal to the quantity.

And default value of nftType is ERC721.
isNFT *truebooleanPass this as “true”.

Note: If this is passed all these query parameters should be passed compulsorily - “callData”, "contractId", “cryptoCurrencyCode”, “estimatedGasLimit”, “nftData”
walletAddress0x86349020e9394b2BE1b1262531B 0C3335fc32F20stringThe blockchain address of the user's wallet that the purchased NFT will be sent to. Users will be able to edit the wallet address. The wallet address needs to be valid for the NFT and blockchain network so to make sure this works you should pass cryptoCurrencyCode or network.
environmentSTAGINGstringPRODUCTIONTo differentiate between STAGING environment and PRODUCTION environment.

Note: This param will only work with our SDK integration method.
fiatCurrencyGBPstringThe code of the fiat currency you want the customer to buy NFT in. If the fiat currency is not supported by a specific product type then the default widget will load with all the supported fiat currencies for that product type.

You can find all the supported fiat currencies here.
defaultFiatCurrencyGBPstringThe three letter code of the fiat currency your user will send/receive while buying/selling cryptocurrency. Users can change the fiat currency if this is passed. If the fiat currency is not supported by a specific product type then the default widget will load with all the supported fiat currencies for that product type.
This parameter will be skipped if fiatCurrency or countryCode is passed.
countryCodeINstringThe country's https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The fiat currency will be displayed as per the country code. If the country code is not supported by a specific product type then the default widget will load with all the supported countries for that product type.
This parameter will be skipped if fiatCurrency is passed.
disablePaymentMethodscredit_debit_cardstringA comma-separated list of payment methods you want to disable and hide from the customers.
email[email protected]stringThe email that will be used to identify your customer and their order (usually the email that they registered with your app).

Note: Please encode the email if it contains any special characters before passing it to query parameters. Otherwise, it will not be considered.

Eg:
[email protected] ==> Works
[email protected] ==> will not work.
userDataExampleobjectHere you can pass your user's data like their name, address, date of birth in the object format. If you will pass all the basic user's data, the customer won't be prompted to enter it.
partnerOrderId5e2f559511a9destringAn order ID that will be used to identify the transaction once a webhook is called back to your app. This can be your identifier to track your customers.
partnerCustomerId23487492stringA customer ID that will be used to identify the customer that made the transaction once a webhook is called back to your app.
disableWalletAddressFormtruebooleanfalseWhen true, the customer will not be able to change the destination address of where the cryptocurrency is sent to.

Note: When this is used, walletAddress query param should be passed.
themeColor000000stringThe theme color code for the widget main color. It is used for buttons, links and highlighted text. Only hexadecimal codes are accepted.
widgetHeight100%string100%Height of the widget iFrame.
widgetWidth100%string100%Widget of the widget iFrame.
hideMenutruebooleanfalseWhen true, then the customer will not see the menu options. This will hide the menu completely.
isFeeCalculationHiddentruebooleanfalseWhen true, then the customer will not see our fee breakdown. The customer will only see the total fee. This parameter will be ignored if your fee (on top of us) is more than 1%.
exchangeScreenTitleBuy NFTstringTo change the exchange screen title.