Hi everyone,
I’m having some trouble understanding the webhook responses I get from the API when I make a token creation request. Besides the "status": "COMPLETED" field, I’m not really sure what the other fields mean or how I should use this information.
Also, I couldn’t find any field in the webhook messages that I can use as an identifier to match the token creation request I sent with the webhook response I receive. Am I missing something, or is there a recommended way to correlate these requests and responses?
Here’s the endpoint I’m using:
{{baseUrl}}/tokenization/tokens
Here’s the payload I’m sending:
{
"blockchainId": "B75VRLGX",
"assetId": "ETH_TEST5",
"vaultAccountId": "1",
"createParams": {
"contractId": "00000000-0000-0000-0000-000000000003",
"deployFunctionParams": [
{
"name": "implementation",
"description": null,
"internalType": "address",
"type": "address",
"components": null,
"value": "0x0f25045d15C163478bb67C56c5d9D602628F4F62",
"functionValue": null
},
{
"name": "_data",
"description": null,
"internalType": null,
"type": "bytes",
"components": null,
"value": null,
"functionValue": {
"name": "initialize",
"inputs": [
{
"name": "_name",
"description": null,
"internalType": "string",
"type": "string",
"components": null,
"value": "Unit Test Token 06/06/2025 16:13",
"functionValue": null
},
{
"name": "_symbol",
"description": null,
"internalType": "string",
"type": "string",
"components": null,
"value": "UTT_TEST",
"functionValue": null
},
{
"name": "defaultAdmin",
"description": null,
"internalType": "address",
"type": "address",
"components": null,
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"functionValue": null
},
{
"name": "minter",
"description": null,
"internalType": "address",
"type": "address",
"components": null,
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"functionValue": null
},
{
"name": "pauser",
"description": null,
"internalType": "address",
"type": "address",
"components": null,
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"functionValue": null
}
],
"outputs": null,
"stateMutability": null
}
}
]
},
"displayName": "Unit Test Token 06/06/2025 16:13",
"useGasless": true,
"fee": "0.0000001",
"feeLevel": "MEDIUM"
}
Here’s the response data:
{
"idToken": "225bed66-7b4d-4eea-b17a-d4fa05ac633e",
"status": "PENDING"
}
And here’s the webhook response:
{
"type": "TRANSACTION_STATUS_UPDATED",
"tenantId": "ef0e5dab-104f-4e03-a63a-5840eb9c1560",
"timestamp": 1749237266004,
"data": {
"id": "0785bf62-732d-4e6b-ba91-59ac62bf5b00",
"createdAt": 1749237206618,
"lastUpdated": 1749237255692,
"assetId": "ETH_TEST5",
"source": {
"id": "1",
"type": "VAULT_ACCOUNT",
"name": "Conta do Zoran - Console",
"subType": ""
},
"destination": {
"id": null,
"type": "ONE_TIME_ADDRESS",
"name": "N/A",
"subType": ""
},
"amount": 0,
"networkFee": 0.0399104,
"netAmount": 0,
"sourceAddress": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"destinationAddress": "0x921Abc1e34212E82858e5c7ea18600eFb0e52231",
"destinationAddressDescription": "",
"destinationTag": "",
"status": "COMPLETED",
"txHash": "0xf1f778dd92a51028d04ad9bd491175cf75a072acaf57100bc0f8a455a6706f1e",
"subStatus": "CONFIRMED",
"signedBy": [
"157b90de-6256-4852-a0f9-63373268dced"
],
"createdBy": "56b99e3a-75be-41ca-89d4-82afae62312d",
"rejectedBy": "",
"amountUSD": 0,
"addressType": "",
"note": "Deploying contract deterministically using factory",
"exchangeTxId": "",
"requestedAmount": 0,
"feeCurrency": "ETH_TEST5",
"operation": "CONTRACT_CALL",
"numOfConfirmations": 3,
"amountInfo": {
"amount": "0",
"requestedAmount": "0",
"netAmount": "0",
"amountUSD": "0.00"
},
"feeInfo": {
"networkFee": "0.0399104",
"gasPrice": "100"
},
"externalTxId": null,
"blockInfo": {
"blockHeight": "8491469",
"blockHash": "0x879207c721b79ccdae0b90a3b785d157e5ed6224be4290eecf2ee6ab6056dc59"
},
"networkRecords": [
{
"source": {
"id": "1",
"type": "VAULT_ACCOUNT",
"name": "Conta do Zoran - Console",
"subType": ""
},
"destination": {
"id": null,
"type": "ONE_TIME_ADDRESS",
"name": "N/A",
"subType": ""
},
"txHash": "0xf1f778dd92a51028d04ad9bd491175cf75a072acaf57100bc0f8a455a6706f1e",
"networkFee": "0.0399104",
"assetId": "ETH_TEST5",
"netAmount": "0",
"isDropped": false,
"type": "CONTRACT_CALL",
"destinationAddress": "0x921Abc1e34212E82858e5c7ea18600eFb0e52231",
"amountUSD": "0"
}
],
"signedMessages": [],
"extraParameters": {
"salt": "0x8e95f38af10f3bb21029680e5469def8b0c8063051a788f8ab2848968655b011",
"contractId": "00000000-0000-0000-0000-000000000003",
"initParams": [
{
"name": "implementation",
"type": "address",
"value": "0x0f25045d15C163478bb67C56c5d9D602628F4F62",
"internalType": "address"
},
{
"name": "_data",
"type": "bytes",
"value": "0xdb0ed6a00000000000000000000000000",
"functionValue": {
"name": "initialize",
"inputs": [
{
"name": "_name",
"type": "string",
"value": "Unit Test Token 06/06/2025 16:13",
"internalType": "string"
},
{
"name": "_symbol",
"type": "string",
"value": "UTT_TEST",
"internalType": "string"
},
{
"name": "defaultAdmin",
"type": "address",
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"internalType": "address"
},
{
"name": "minter",
"type": "address",
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"internalType": "address"
},
{
"name": "pauser",
"type": "address",
"value": "0x66A489c3F3965Dc5C99547d6445352787356c7ac",
"internalType": "address"
}
]
}
}
],
"contractType": "FUNGIBLE_TOKEN",
"contractCallData": "0x861b0691000000...0000000000000",
"encodedInitParams": "0x0000...000000",
"contractTemplateName": "Upgradeable ERC-20F",
"contractsParsingMetadata": [
{
"eventIndex": 1,
"templateId": "00000000-0000-0000-0000-000000000003",
"templateName": "Upgradeable ERC-20F",
"templateType": "FUNGIBLE_TOKEN",
"eventSignature": "ContractDeployed(address indexed from, address indexed deployedAddress,bytes32 indexed bytecodeHash,bytes inputs,bool isDeterministic,bytes32 salt)"
}
]
},
"assetType": "BASE_ASSET"
}
}
Any help or clarification would be appreciated!