I’m using the Fireblocks Java SDK (version 10.1.0) and most operations are working fine — I can list vault accounts, create wallets, etc., without any issues.
However, I’m running into a problem when trying to issue a new token:
TokenLinkDto response = fireblocks.tokenization().issueNewToken(createTokenRequestDto, idempotencyKey).join().getData();
The method executes successfully and returns:
{
"id": "ba3b1d03-26bd-4a41-8a37-bf2269eef412",
"displayName": "Unit Test Token",
"status": "PENDING"
}
But I can tell something went wrong based on the console output:
And also from the webhook responses:
{
"type": "TRANSACTION_STATUS_UPDATED",
"tenantId": "ef0e5dab-104f-4e03-a63a-5840eb9c1560",
"timestamp": 1747942275023,
"data": {
"id": "2eadc962-fa68-4072-88c5-404ab208cb30",
"createdAt": 1747942264305,
"lastUpdated": 1747942265499,
"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,
"netAmount": 0,
"sourceAddress": "",
"destinationAddress": "",
"destinationAddressDescription": "",
"destinationTag": "",
"status": "FAILED",
"txHash": "",
"subStatus": "SMART_CONTRACT_EXECUTION_FAILED",
"signedBy": [],
"createdBy": "56b99e3a-75be-41ca-89d4-82afae62312d",
"rejectedBy": "",
"amountUSD": 0,
"addressType": "",
"note": "Deploy contract from registry",
"exchangeTxId": "",
"requestedAmount": 0,
"feeCurrency": "ETH_TEST5",
"operation": "CONTRACT_CALL",
"amountInfo": {
"amount": "0",
"requestedAmount": "0",
"netAmount": "0",
"amountUSD": "0.00"
},
"feeInfo": {
"networkFee": "0"
},
"externalTxId": null,
"blockInfo": {},
"errorDescription": "execution reverted: 0xd6bda275",
"networkRecords": [],
"signedMessages": [],
"extraParameters": {
"contractId": "00000000-0000-0000-0000-000000000003",
"contractType": "FUNGIBLE_TOKEN",
"contractCallData": "0x60806040526040516104... ...8282610037565b50505050610356",
"contractTemplateName": "Upgradeable ERC-20F"
},
"assetType": "BASE_ASSET"
}
}
I suspect I might be passing incorrect parameters or skipping a required step before calling issueNewToken
.
One thing that stood out: I couldn’t find a way to specify the TEST_NET
network in the Java SDK. This parameter is required when issuing a token via the Fireblocks console, but I haven’t seen any reference to it in the SDK docs.
I started from this reference:
Issue New ERC20F Tokens
Here’s the JSON representation of the parameters I’m sending (converted from the Java object):
{
"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" : "0x48FD165c640a506d0847266Ce6cA8fF013699311",
"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",
"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",
"useGasless" : false,
"fee" : "0.00001",
"feeLevel" : "MEDIUM"
}
Any ideas on what might be missing or misconfigured?
Thanks in advance!