For Marketplaces with custom contracts

A sample query string has been attached at the end of this page.

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.

You need to compress the calldata and send the output as the value for this query param. Detailed explanation here.

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.
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.
network *IMXZKEVMstringA crypto network that you would allow your customers to buy NFTs on. You can get the list of supporting networks here. For ex: Ethereum
estimatedGasLimit *34589000numberGas limit that needs to be filled while executing the transaction

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

Note: This cannot be 0
nftData *Examplebase64 encoded stringNFT data is an array that consists of only a single element. The value for this query param should be Base64 encoded.

It contains: 
• imageURL - string (Optional)
• nftName - string (Optional)
• collectionAddress - string
• tokenID - Array (string)
• price - Array (number)
• quantity - number
• nftType - string

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. Also the length of price and tokenID array should be same and equal to the quantity.

And default value of nftType is ERC721.
smartContractAddress *0x86349020e9394b2BE1b1262531B 0C3335fc32F20stringThe address of the smart contract on which the calldata needs to be executed
isNFT *truebooleanPass this as “true”.

Note: If this is passed all these query parameters should be passed compulsorily - “callData”, “cryptoCurrencyCode”, “network”, “estimatedGasLimit”, “nftData”, “smartContractAddress”
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.

Note: This param will only work with our SDK integration method.
widgetWidth100%string100%Widget of the widget iFrame.

Note: This param will only work with our SDK integration method.
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.

Sample query string:

https://global-stg.transak.com/
?apiKey=9cd32351-8603-4475-8357-143f4f4cc660
&isNFT=true
&smartContractAddress=0xb78BeDa875BcfD00cD384EdB0F0f0f6B0050a987
&estimatedGasLimit=334399
&calldata=eJzFVsuNJTEIzGUisPk7HLAhhg1%2FmdOcevT0rLdbp1YbhF2IKr7GnxI%2FigTjCXZwEDEtjtiB4SEji4POzL2x9hb2VEEkNlkKgioqzOqUcphYWXRKIneEqLE%2F1nob%2By590pt5FoOaCRC%2Bqv8L%2FS8Cnw5gBnejpKJ7QqHJKw2hVi4xLVinFlXYp%2FKtg0cMyYlw9hwwkrSqpD8hFyGJFM%2F41Ptfg9ylz7v0MW9HQggwTOGcp4gF0VN5aHst3kMT0USOpO2gkcJTtcxuL3LDxDT5gDS8hM%2FzF5KtmRuWHgkeVIbjiIyFXtQK6Ryuy2505ET8L%2F6y%2BSOvQZeDdK2Dl5P4XP%2FfzM%2BbPvSD99%2FP2D4Pdz72Nmg6AaDPEuVd%2Bu06NONU7OxDAUcu1mIWiqFusx0X8XggdDz4%2FF5Q3Leeaqc6GlG8CeZ0xu6RL8ujvZzYJt15nLcp9%2B9eV9aACrp1oK%2B%2FYxLsYA%3D%3D
&nftData=WwoJeyAKICAgICAgICAgICAgICAgIm5mdE5hbWUiOiAiUG9rZW1vbiBNZXRhZGF0YSBMZWdlbmRzIiwKICAgICAgICAgICAgICAgICJpbWFnZVVSTCI6ICJodHRwczovL2Fzc2V0cy50cmFuc2FrLmNvbS9pbWFnZXMvZ2VuZXJhbC90cmFuc2FrLXRlc3QtbmZ0LnBuZyIsCgkJImNvbGxlY3Rpb25BZGRyZXNzIjogIjB4ZjU3OGI2YkI0RkE1Yzc0MDMxNDdDMjliZTg2NGY1ZTEyQkYyMTFhMCIsCgkJInRva2VuSUQiOiBbIjY3NjEyNTQ1IiwgIjk4MTg2MjQwIl0sCgkJInByaWNlIjogWzEwLDEwXSwKCQkicXVhbnRpdHkiOiAyCgl9Cl0=
&network=immutablezkevm
&cryptoCurrencyCode=USDC