API Reference

REST Endpoints

Complete reference for all API endpoints. Click on an endpoint to expand details.

Account

GET /Api/Account/Balance

Retrieve your current ETH balance as a decimal number.

Example Response:

{
  "balance": 12.5847
}

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update('').digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Account/Balance', {
method: 'GET',
headers: {
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
});
const balance = await response.json();

POST /Api/Account/UpdateExternalUser

Update external user information for tracking purposes.

Body Parameters

userIdRequired
string
Unique user identifier
displayNameOptional
string
User display name
avatarUrlOptional
string
User avatar URL

Request Body

{
  "userId": "user_123",
  "displayName": "John Doe",
  "avatarUrl": "https://example.com/avatar.png"
}

Example Response:

{}

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
 
const body = JSON.stringify({
userId: 'user_123',
displayName: 'John Doe',
});
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(body).digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Account/UpdateExternalUser', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
body: body,
});

Ethereum

GET /Api/Ethereum/Coins

Retrieve a list of all supported cryptocurrencies with their details including symbols, networks, and asset URLs.

Example Response:

[
  {
    "coin": 0,
    "symbol": "ETH",
    "currentPrice": 3500.5,
    "depositFee": 0.0075,
    "withdrawalFee": 0,
    "coinCategory": "Ethereum",
    "fullName": "Ethereum",
    "contractAddress": null,
    "svgUrl": "https://app.blockfuze.com/coins-logo/ETH.svg",
    "pngUrl": "https://app.blockfuze.com/coins-logo/ETH.png"
  },
  {
    "coin": 1,
    "symbol": "USDT",
    "currentPrice": 1,
    "depositFee": 0.0035,
    "withdrawalFee": 0,
    "coinCategory": "ERC20",
    "fullName": "Tether USD",
    "contractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "svgUrl": "https://app.blockfuze.com/coins-logo/USDT.svg",
    "pngUrl": "https://app.blockfuze.com/coins-logo/USDT.png"
  }
]

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update('').digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Ethereum/Coins', {
method: 'GET',
headers: {
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
});
const coins = await response.json();

GET /Api/Ethereum/DepositAddress

Get a unique Ethereum deposit address, optionally linked to an external user.

Query Parameters

externalUserIdOptional
string
External user identifier

Example Response:

{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f8bE2a",
  "expires": "2024-12-31T23:59:59Z",
  "externalUserId": "user_123"
}

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
 
const queryString = 'externalUserId=user_123';
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(queryString).digest('hex');
 
const response = await fetch(`https://api.blockfuze.com/Api/Ethereum/DepositAddress?${queryString}`, {
method: 'GET',
headers: {
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
});

GET /Api/Ethereum/Reserves

Get current reserves available in the system by address.

Query Parameters

coinOptional
Filter by coin type
minValuationOptional
number
Min USD valuation (default: 10)

Example Response:

[
  {
    "address": "0x742d35Cc...",
    "balances": [
      {
        "coin": "ETH",
        "balance": 125.5
      }
    ]
  }
]

Code Examples

node.js
const queryString = 'coin=0&minValuation=10';
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(queryString).digest('hex');
 
const response = await fetch(`https://api.blockfuze.com/Api/Ethereum/Reserves?${queryString}`, {
method: 'GET',
headers: {
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
});

GET /Api/Ethereum/InstantWithdrawalAmount

Get maximum amount that can be instantly withdrawn per coin.

Query Parameters

coinOptional
Filter by coin type

Example Response:

[
  {
    "coin": 0,
    "amount": 10.5,
    "valuation": 26250
  }
]

Code Examples

node.js
const queryString = 'coin=0';
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(queryString).digest('hex');
 
const response = await fetch(`https://api.blockfuze.com/Api/Ethereum/InstantWithdrawalAmount?${queryString}`, {
method: 'GET',
headers: {
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
});

POST /Api/Ethereum/Withdrawal

Initiate an Ethereum or ERC-20 token withdrawal. Returns the same withdrawal object structure as the Withdrawal webhook.

Body Parameters

toAddressRequired
string
Destination address (42 characters)
coinRequired
Cryptocurrency type
withdrawalAmountRequired
number
Amount to withdraw
externalWithdrawalIdRequired
string
Case-Sensitive withdrawal ID in your system, you may call this endpoint multiple times as this property prevents from duplicate withdrawals being created.
externalUserIdOptional
string
External user identifier
rejectNonInstantOptional
boolean
Reject if instant unavailable

Request Body

{
  "toAddress": "0x742d35Cc...",
  "coin": 0,
  "withdrawalAmount": 1.5,
  "externalWithdrawalId": "wd_abc123"
}

Example Response:

{
  "id": 12345,
  "txid": "0xabc123def456...",
  "from": null,
  "to": "0x742d35Cc...",
  "coin": 0,
  "cryptoAmount": null,
  "withdrawalAmount": 1.5,
  "fee": null,
  "confirmations": 0,
  "withdrawalStatus": 0,
  "externalWithdrawalId": "wd_abc123",
  "externalUserId": "user_123",
  "externalAvatarFull": null,
  "externalDisplayName": null,
  "processed": false,
  "lastUpdate": "2026-03-01T12:34:56Z",
  "created": "2026-03-01T12:34:56Z"
}

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
 
const body = JSON.stringify({
toAddress: '0x742d35Cc6634C0532925a3b844Bc454f8bE2a',
coin: 0,
withdrawalAmount: 1.5,
externalWithdrawalId: 'wd_abc123',
});
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(body).digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Ethereum/Withdrawal', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
body: body,
});

POST /Api/Ethereum/Deposits

Retrieve Ethereum deposit transactions with optional filtering. Returns an array of deposit objects with the same structure as the Deposit webhook.

Body Parameters

txidOptional
string
Filter by transaction ID
processedOptional
boolean
Filter by processed status
completedOptional
boolean
Filter by completed status
hasExternalUserOptional
boolean
Filter by external user
afterIdOptional
integer
Pagination: after this ID
beforeIdOptional
integer
Pagination: before this ID

Request Body

{
  "processed": false,
  "hasExternalUser": true
}

Example Response:

[
  {
    "id": 12345,
    "txid": "0xabc123def456...",
    "from": "0x742d35Cc...",
    "to": "0x8ba1f109...",
    "coin": 0,
    "cryptoAmount": 0.12500006,
    "creditAmount": 1.5,
    "depositAmount": 1.5,
    "confirmations": 12,
    "depositStatus": 2,
    "externalUserId": "user_123",
    "externalAvatarFull": "https://cdn.example.com/avatar.png",
    "externalDisplayName": "John Doe",
    "processed": false,
    "lastUpdate": "2026-03-01T12:34:56Z",
    "created": "2026-03-01T10:15:30Z"
  }
]

Code Examples

node.js
const body = JSON.stringify({ processed: false, hasExternalUser: true });
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(body).digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Ethereum/Deposits', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
body: body,
});

POST /Api/Ethereum/Withdrawals

Retrieve Ethereum withdrawal transactions with optional filtering. Returns an array of withdrawal objects with the same structure as the Withdrawal webhook.

Body Parameters

txidOptional
string
Filter by transaction ID
processedOptional
boolean
Filter by processed status
completedOptional
boolean
Filter by completed status
hasExternalUserOptional
boolean
Filter by external user
afterIdOptional
integer
Pagination: after this ID
beforeIdOptional
integer
Pagination: before this ID

Request Body

{
  "processed": false,
  "hasExternalUser": true
}

Example Response:

[
  {
    "id": 12345,
    "txid": "0xabc123def456...",
    "from": "0x742d35Cc...",
    "to": "0x8ba1f109...",
    "coin": 0,
    "cryptoAmount": 0.12500006,
    "withdrawalAmount": 1.5,
    "fee": 0.01,
    "confirmations": 12,
    "withdrawalStatus": 2,
    "externalWithdrawalId": "wd_abc123",
    "externalUserId": "user_123",
    "externalAvatarFull": "https://cdn.example.com/avatar.png",
    "externalDisplayName": "John Doe",
    "processed": false,
    "lastUpdate": "2026-03-01T12:34:56Z",
    "created": "2026-03-01T10:15:30Z"
  }
]

Code Examples

node.js
const body = JSON.stringify({ processed: false, hasExternalUser: true });
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(body).digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Ethereum/Withdrawals', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
body: body,
});

Transaction Processing

POST /Api/Ethereum/MarkProcessed

Mark deposits and/or withdrawals as processed in your system.

Body Parameters

depositIdsOptional
array<integer>
Deposit IDs to mark
withdrawalIdsOptional
array<integer>
Withdrawal IDs to mark
processedRequired
boolean
Mark as processed or not

Request Body

{
  "depositIds": [
    1,
    2,
    3
  ],
  "withdrawalIds": [
    4,
    5
  ],
  "processed": true
}

Example Response:

{}

Code Examples

node.js
const crypto = require('crypto');
 
const PUBLIC_KEY = 'your-public-key';
const PRIVATE_KEY = 'your-private-key';
 
const body = JSON.stringify({
depositIds: [1, 2, 3],
withdrawalIds: [4, 5],
processed: true
});
const signature = crypto.createHmac('sha512', PRIVATE_KEY).update(body).digest('hex');
 
const response = await fetch('https://api.blockfuze.com/Api/Ethereum/MarkProcessed', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-public-key': PUBLIC_KEY,
'x-signature': signature,
},
body: body,
});

Set up webhooks to receive real-time notifications when transactions change status.