fireblocks Contract Interactions API
The Contract Interactions API from fireblocks — 4 operation(s) for contract interactions.
The Contract Interactions API from fireblocks — 4 operation(s) for contract interactions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fireblocks-contract-interactions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fireblocks Blockchains and Assets Approval Requests Contract Interactions API
description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.
- Visit our website for more information: [Fireblocks Website](https://fireblocks.com)
- Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
'
version: 1.8.0
contact:
email: developers@fireblocks.com
servers:
- url: https://api.fireblocks.io/v1
description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
description: Fireblocks Sandbox Environment Base URL
security: []
tags:
- name: Contract Interactions
paths:
/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions:
get:
operationId: getDeployedContractAbi
summary: Return deployed contract's ABI
description: 'Return deployed contract''s ABI by blockchain native asset id and contract address.
</br>Endpoint Permission: Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.'
parameters:
- $ref: '#/components/parameters/X-Idempotency-Key'
- name: contractAddress
required: true
in: path
description: The contract's onchain address
example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
schema:
type: string
- name: baseAssetId
description: The blockchain base assetId
required: true
in: path
example: ETH
schema:
type: string
x-readme:
code-samples:
- language: javascript
code: const deployedContractAbi = await fireblocks.getContractAbi(baseAssetId, contractAddress);
name: Fireblocks SDK Javascript example
- language: typescript
code: 'const response: Promise<FireblocksResponse<ContractAbiResponseDto>> = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);'
name: Fireblocks SDK TypeScript example
- language: java
code: CompletableFuture<ApiResponse<ContractAbiResponseDto>> response = fireblocks.contractInteractions().getDeployedContractAbi(contractAddress, baseAssetId, idempotencyKey);
name: Fireblocks SDK Java example
- language: python
code: response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address, base_asset_id, idempotency_key);
name: Fireblocks SDK Python example
responses:
'200':
description: Contract ABI response
content:
application/json:
schema:
$ref: '#/components/schemas/ContractAbiResponseDto'
default:
$ref: '#/components/responses/Error'
tags:
- Contract Interactions
x-codeSamples:
- lang: TypeScript
source: 'const response: Promise<FireblocksResponse<ContractAbiResponseDto>> = fireblocks.contractInteractions.getDeployedContractAbi(contractInteractionsApiGetDeployedContractAbiRequest);'
- lang: Java
source: CompletableFuture<ApiResponse<ContractAbiResponseDto>> response = fireblocks.contractInteractions().getDeployedContractAbi(contractAddress, baseAssetId, idempotencyKey);
- lang: Python
source: response = fireblocks.contract_interactions.get_deployed_contract_abi(contract_address, base_asset_id, idempotency_key);
/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/read:
post:
operationId: readCallFunction
summary: Call a read function
description: 'Call a read function on a deployed contract by blockchain native asset id and contract address.
</br>Endpoint Permission: Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor.'
parameters:
- $ref: '#/components/parameters/X-Idempotency-Key'
- name: contractAddress
required: true
in: path
description: The contract's onchain address
example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
schema:
type: string
- name: baseAssetId
description: The blockchain base assetId
required: true
in: path
example: ETH
schema:
type: string
x-readme:
code-samples:
- language: javascript
code: const readResponse= await fireblocks.readContractCallFunction(baseAssetId, contractAddress, payload);
name: Fireblocks SDK Javascript example
- language: typescript
code: 'const response: Promise<FireblocksResponse<ParameterWithValueList>> = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);'
name: Fireblocks SDK TypeScript example
- language: java
code: CompletableFuture<ApiResponse<List<ParameterWithValue>>> response = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto, contractAddress, baseAssetId, idempotencyKey);
name: Fireblocks SDK Java example
- language: python
code: response = fireblocks.contract_interactions.read_call_function(read_call_function_dto, contract_address, base_asset_id, idempotency_key);
name: Fireblocks SDK Python example
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReadCallFunctionDto'
responses:
'200':
description: Read Call Retrieved Successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ParameterWithValueList'
default:
$ref: '#/components/responses/Error'
tags:
- Contract Interactions
x-codeSamples:
- lang: TypeScript
source: 'const response: Promise<FireblocksResponse<ParameterWithValueList>> = fireblocks.contractInteractions.readCallFunction(contractInteractionsApiReadCallFunctionRequest);'
- lang: Java
source: CompletableFuture<ApiResponse<List<ParameterWithValue>>> response = fireblocks.contractInteractions().readCallFunction(readCallFunctionDto, contractAddress, baseAssetId, idempotencyKey);
- lang: Python
source: response = fireblocks.contract_interactions.read_call_function(read_call_function_dto, contract_address, base_asset_id, idempotency_key);
/contract_interactions/base_asset_id/{baseAssetId}/contract_address/{contractAddress}/functions/write:
post:
operationId: writeCallFunction
summary: Call a write function
description: 'Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check.
</br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor.'
parameters:
- $ref: '#/components/parameters/X-Idempotency-Key'
- name: contractAddress
required: true
in: path
description: The contract's onchain address
example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
schema:
type: string
- name: baseAssetId
description: The blockchain base assetId
required: true
in: path
example: ETH
schema:
type: string
x-readme:
code-samples:
- language: javascript
code: const writeFunctionResponse = await fireblocks.writeContractCallFunction(baseAssetId, contractAddress, payload);
name: Fireblocks SDK Javascript example
- language: typescript
code: 'const response: Promise<FireblocksResponse<WriteCallFunctionResponseDto>> = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);'
name: Fireblocks SDK TypeScript example
- language: java
code: CompletableFuture<ApiResponse<WriteCallFunctionResponseDto>> response = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto, contractAddress, baseAssetId, idempotencyKey);
name: Fireblocks SDK Java example
- language: python
code: response = fireblocks.contract_interactions.write_call_function(write_call_function_dto, contract_address, base_asset_id, idempotency_key);
name: Fireblocks SDK Python example
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WriteCallFunctionDto'
responses:
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/WriteCallFunctionResponseDto'
default:
$ref: '#/components/responses/Error'
tags:
- Contract Interactions
x-codeSamples:
- lang: TypeScript
source: 'const response: Promise<FireblocksResponse<WriteCallFunctionResponseDto>> = fireblocks.contractInteractions.writeCallFunction(contractInteractionsApiWriteCallFunctionRequest);'
- lang: Java
source: CompletableFuture<ApiResponse<WriteCallFunctionResponseDto>> response = fireblocks.contractInteractions().writeCallFunction(writeCallFunctionDto, contractAddress, baseAssetId, idempotencyKey);
- lang: Python
source: response = fireblocks.contract_interactions.write_call_function(write_call_function_dto, contract_address, base_asset_id, idempotency_key);
/contract_interactions/base_asset_id/{baseAssetId}/tx_hash/{txHash}/receipt:
get:
operationId: getTransactionReceipt
summary: Get transaction receipt
description: 'Retrieve the transaction receipt by blockchain native asset ID and transaction hash
</br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.'
parameters:
- name: baseAssetId
required: true
in: path
description: The blockchain base assetId
example: ETH_TEST6
schema:
type: string
- name: txHash
required: true
in: path
description: The transaction hash
example: '0x3b015ca0518c55d7bff4e3f5aa5d0431705771553ba8a95cf20e34cb597f57f6'
schema:
type: string
x-readme:
code-samples:
- language: javascript
code: const transactionReceipt = await fireblocks.getTransactionReceipt(baseAssetId, txHash);
name: Fireblocks SDK Javascript example
- language: typescript
code: 'const response: Promise<FireblocksResponse<TransactionReceiptResponse>> = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);'
name: Fireblocks SDK TypeScript example
- language: java
code: CompletableFuture<ApiResponse<TransactionReceiptResponse>> response = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId, txHash);
name: Fireblocks SDK Java example
- language: python
code: response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id, tx_hash);
name: Fireblocks SDK Python example
responses:
'200':
description: Retrieved The Transaction Receipt Successfully
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionReceiptResponse'
default:
$ref: '#/components/responses/Error'
tags:
- Contract Interactions
x-codeSamples:
- lang: TypeScript
source: 'const response: Promise<FireblocksResponse<TransactionReceiptResponse>> = fireblocks.contractInteractions.getTransactionReceipt(contractInteractionsApiGetTransactionReceiptRequest);'
- lang: Java
source: CompletableFuture<ApiResponse<TransactionReceiptResponse>> response = fireblocks.contractInteractions().getTransactionReceipt(baseAssetId, txHash);
- lang: Python
source: response = fireblocks.contract_interactions.get_transaction_receipt(base_asset_id, tx_hash);
components:
schemas:
ReadAbiFunction:
type: object
properties:
inputs:
type: array
items:
$ref: '#/components/schemas/ParameterWithValue'
stateMutability:
type: string
enum:
- pure
- view
type:
type: string
name:
type: string
outputs:
type: array
items:
$ref: '#/components/schemas/Parameter'
description:
type: string
required:
- stateMutability
- type
- inputs
AbiFunction:
type: object
properties:
name:
type: string
example: mint
description: The name of the contract function as it appears in the ABI
stateMutability:
type: string
example: pure
enum:
- pure
- view
- nonpayable
- payable
description: The state mutability of the contract function as it appears in the ABI
type:
type: string
example: constructor
description: The type if the function
enum:
- function
- constructor
inputs:
description: The parameters that this function/constructor posses
items:
$ref: '#/components/schemas/Parameter'
type: array
outputs:
description: The parameters that this 'read' function returns
items:
$ref: '#/components/schemas/Parameter'
type: array
description:
type: string
description: The documentation of this function (if has any)
required:
- type
- inputs
TransactionReceiptResponse:
type: object
properties:
blockHash:
type: string
description: The block hash
example: '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2'
blockNumber:
type: integer
description: The block number
example: 123456
contractAddress:
type:
- string
- 'null'
description: The address of deployed contract
example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
cumulativeGasUsed:
type: integer
description: The cumulative gas used in the transaction
example: 21000
effectiveGasPrice:
type: integer
description: The effective gas price
example: 1000000000
from:
type: string
description: Sender address
example: '0xa7D9ddBE1f17865597Fbd27ec712455208B6b76D'
gasUsed:
type: integer
description: Gas used by the transaction
example: 21000
logs:
type: array
items:
$ref: '#/components/schemas/TxLog'
description: Array of transaction logs
logsBloom:
type: string
description: Logs bloom filter
example: '0x0000000000000000000000000000000000000000000000000000000000000000'
status:
type: integer
description: Transaction status (1 for success, 0 for failure)
example: 1
to:
type:
- string
- 'null'
description: Recipient address
example: '0x1eC4a8bB9bB9Afa24f79cC2e1423cD00B6cFf50'
transactionHash:
type: string
description: The transaction hash
example: '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c'
transactionIndex:
type: integer
description: Transaction index in the block
example: 3
type:
type: string
description: Type of transaction
example: '0x2'
required:
- blockHash
- blockNumber
- cumulativeGasUsed
- effectiveGasPrice
- from
- gasUsed
- logs
- logsBloom
- status
- transactionHash
- transactionIndex
- type
ContractAbiResponseDto:
type: object
properties:
abi:
example:
- inputs:
- internalType: address
name: implementation
type: address
- internalType: bytes
name: _data
type: bytes
stateMutability: nonpayable
type: constructor
description: The abi of the contract
type: array
items:
$ref: '#/components/schemas/AbiFunction'
implementationAbi:
example:
- inputs:
- internalType: address
name: to
type: address
- internalType: uint256
name: amount
type: uint256
stateMutability: nonpayable
type: function
name: mint
description: The abi of the implementation contract if exists. Relevant only for proxy patterns
type: array
items:
$ref: '#/components/schemas/AbiFunction'
required:
- abi
SolanaInstructionWithValue:
type: object
properties:
name:
type: string
description: The name of the instruction
example: approve
discriminator:
type: array
items:
type: number
description: The discriminator for the instruction. Acts as a function selector
example:
- 13
accounts:
type: array
items:
$ref: '#/components/schemas/SOLAccountWithValue'
args:
type: array
description: The arguments of the instruction
items:
$ref: '#/components/schemas/SolParameterWithValue'
required:
- name
- discriminator
- accounts
- args
SolParameterWithValue:
type: object
properties:
value:
type: string
description: The value of the parameter
example: '1000000'
name:
type: string
description: The name of the parameter
example: mint
type:
$ref: '#/components/schemas/IdlType'
required:
- name
- type
- value
Parameter:
type: object
properties:
name:
type: string
example: _name
description: The name of the parameter as it appears in the ABI
description:
type: string
example: The name of the token
description: A description of the parameter, fetched from the devdoc of this contract
internalType:
type: string
example: string
description: The internal type of the parameter as it appears in the ABI
type:
type: string
example: string
description: The type of the parameter as it appears in the ABI
components:
type: array
description: In case it’s a struct, it will hold the struct data
required:
- name
- type
ParameterWithValue:
type: object
properties:
name:
type: string
example: Some Name
description: The name of the parameter as it appears in the ABI
description:
type: string
example: The name of the token
description: A description of the parameter, fetched from the devdoc of this contract
internalType:
type: string
example: string
description: The internal type of the parameter as it appears in the ABI
type:
type: string
example: string
description: The type of the parameter as it appears in the ABI
components:
type: array
items:
$ref: '#/components/schemas/Parameter'
value:
example: 'true'
description: The value of the parameter. can also be ParameterWithValue
type: string
functionValue:
description: The function value of this param (if has one). If this is set, the `value` shouldn`t be. Used for proxies
allOf:
- $ref: '#/components/schemas/LeanAbiFunction'
required:
- name
- type
LeanAbiFunction:
type: object
properties:
name:
type: string
example: initialize
description: The function name
inputs:
description: The function inputs
type: array
items:
$ref: '#/components/schemas/ParameterWithValue'
required:
- inputs
WriteCallFunctionDto:
type: object
properties:
vaultAccountId:
type: string
example: '0'
description: The vault account id this contract was deploy from
abiFunction:
oneOf:
- $ref: '#/components/schemas/WriteAbiFunction'
- $ref: '#/components/schemas/SolanaInstructionWithValue'
amount:
type: string
description: Amount in base asset. Being used in payable functions
example: '12.345'
feeLevel:
enum:
- LOW
- MEDIUM
- HIGH
type: string
description: Fee level for the write function transaction. interchangeable with the 'fee' field
example: MEDIUM
fee:
type: string
description: Max fee amount for the write function transaction. interchangeable with the 'feeLevel' field
example: '2000'
note:
type: string
description: Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace
useGasless:
type: boolean
example: false
description: Indicates whether the token should be created in a gasless manner, utilizing the ERC-2771 standard. When set to true, the transaction will be relayed by a designated relayer. The workspace must be configured to use Fireblocks gasless relay.
externalId:
type: string
description: External id that can be used to identify the transaction in your system. The unique identifier of the transaction outside of Fireblocks with max length of 255 characters
example: 0192e4f5-924e-7bb9-8e5b-c748270feb38
required:
- vaultAccountId
- abiFunction
IdlType:
type: string
enum:
- bool
- u8
- i8
- u16
- i16
- u32
- i32
- f32
- u64
- i64
- f64
- u128
- i128
- u256
- i256
- bytes
- string
- pubkey
description: The type of the parameter
example: u8
WriteCallFunctionResponseDto:
type: object
properties:
txId:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: The Fireblocks transaction id of the function call
required:
- txId
TxLog:
type: object
properties:
address:
type: string
description: The log address
example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
topics:
type: array
items:
type: string
description: Array of log topics
example:
- '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'
- '0x000000000000000000000000a7d9ddbe1f17865597fbd27ec712455208b6b76d'
- '0x000000000000000000000000c2c4e1db41f0bb97996d0ed0542d2170d146fb66'
data:
type: string
description: The log data
example: '0x000000000000000000000000000000000000000000000000000000000000000a'
blockNumber:
type: integer
description: Block number where the log occurred
example: 123456
transactionHash:
type: string
description: Transaction hash associated with the log
example: '0x5a3b7f4b2c9e4a0b1f8a12c8e5f1d0e2a6b4c9d1f7e2b1a2b3c4d5e6f7a8b9c'
transactionIndex:
type: integer
description: Transaction index in the block
example: 2
blockHash:
type: string
description: The hash of the block
example: '0x6e3c92a3d96f96e46b7f39c30244edb6e8e0f4b65d3846c9f8287f9dd5d1a3d2'
logIndex:
type: integer
description: Log index in the block
example: 1
removed:
type: boolean
description: Indicates if the log was removed
example: false
required:
- address
- topics
- data
- blockNumber
- transactionHash
- transactionIndex
- blockHash
- logIndex
- removed
ParameterWithValueList:
type: array
items:
$ref: '#/components/schemas/ParameterWithValue'
WriteAbiFunction:
type: object
properties:
stateMutability:
type: string
enum:
- payable
- nonpayable
example: nonpayable
outputs:
type: array
items:
$ref: '#/components/schemas/Parameter'
type:
type: string
enum:
- function
name:
type: string
inputs:
type: array
items:
$ref: '#/components/schemas/ParameterWithValue'
description:
type: string
required:
- stateMutability
- type
- inputs
SOLAccountWithValue:
type: object
properties:
name:
type: string
description: The name of the account
example: mint
signer:
type: boolean
description: Indicates if the account needs to sign the instruction. If true a signature for this account must be provided
example: false
writable:
type: boolean
description: Indicates if the account's data can be changed by the instruction.
example: true
address:
type: string
description: The address of the account
example: 4PVcDXAkAgQkVx4puiSXdZ5H8BrTqUzstJBKKWFy3XsH
required:
- name
- address
ReadCallFunctionDto:
type: object
properties:
abiFunction:
example:
inputs: []
stateMutability: view
type: function
name: decimals
outputs:
- name: ''
type: uint8
internalType: uint8
description: The abi of the read function you wish to call
type: object
$ref: '#/components/schemas/ReadAbiFunction'
required:
- abiFunction
parameters:
X-Idempotency-Key:
name: Idempotency-Key
in: header
description: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
required: false
schema:
type: string
example: some-unique-id
responses:
Error:
description: Error Response
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorSchema'
securitySchemes:
bearerTokenAuth:
type: http
scheme: bearer
bearerFormat: JWT
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key