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
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
| Name | Type | Required | Description |
|---|---|---|---|
userId | string | Required | Unique user identifier |
displayName | string | Optional | User display name |
avatarUrl | string | Optional | User avatar URL |
userIdRequireddisplayNameOptionalavatarUrlOptionalRequest Body
{ "userId": "user_123", "displayName": "John Doe", "avatarUrl": "https://example.com/avatar.png" }
Example Response:
{}
Code Examples
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
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
| Name | Type | Required | Description |
|---|---|---|---|
externalUserId | string | Optional | External user identifier |
externalUserIdOptionalExample Response:
{ "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f8bE2a", "expires": "2024-12-31T23:59:59Z", "externalUserId": "user_123" }
Code Examples
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
| Name | Type | Required | Description |
|---|---|---|---|
coin | Optional | Filter by coin type | |
minValuation | number | Optional | Min USD valuation (default: 10) |
coinOptionalminValuationOptionalExample Response:
[ { "address": "0x742d35Cc...", "balances": [ { "coin": "ETH", "balance": 125.5 } ] } ]
Code Examples
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
| Name | Type | Required | Description |
|---|---|---|---|
coin | Optional | Filter by coin type |
coinOptionalExample Response:
[ { "coin": 0, "amount": 10.5, "valuation": 26250 } ]
Code Examples
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
| Name | Type | Required | Description |
|---|---|---|---|
toAddress | string | Required | Destination address (42 characters) |
coin | Required | Cryptocurrency type | |
withdrawalAmount | number | Required | Amount to withdraw |
externalWithdrawalId | string | Required | Case-Sensitive withdrawal ID in your system, you may call this endpoint multiple times as this property prevents from duplicate withdrawals being created. |
externalUserId | string | Optional | External user identifier |
rejectNonInstant | boolean | Optional | Reject if instant unavailable |
toAddressRequiredcoinRequiredwithdrawalAmountRequiredexternalWithdrawalIdRequiredexternalUserIdOptionalrejectNonInstantOptionalRequest 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
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
| Name | Type | Required | Description |
|---|---|---|---|
txid | string | Optional | Filter by transaction ID |
processed | boolean | Optional | Filter by processed status |
completed | boolean | Optional | Filter by completed status |
hasExternalUser | boolean | Optional | Filter by external user |
afterId | integer | Optional | Pagination: after this ID |
beforeId | integer | Optional | Pagination: before this ID |
txidOptionalprocessedOptionalcompletedOptionalhasExternalUserOptionalafterIdOptionalbeforeIdOptionalRequest 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
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
| Name | Type | Required | Description |
|---|---|---|---|
txid | string | Optional | Filter by transaction ID |
processed | boolean | Optional | Filter by processed status |
completed | boolean | Optional | Filter by completed status |
hasExternalUser | boolean | Optional | Filter by external user |
afterId | integer | Optional | Pagination: after this ID |
beforeId | integer | Optional | Pagination: before this ID |
txidOptionalprocessedOptionalcompletedOptionalhasExternalUserOptionalafterIdOptionalbeforeIdOptionalRequest 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
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
| Name | Type | Required | Description |
|---|---|---|---|
depositIds | array<integer> | Optional | Deposit IDs to mark |
withdrawalIds | array<integer> | Optional | Withdrawal IDs to mark |
processed | boolean | Required | Mark as processed or not |
depositIdsOptionalwithdrawalIdsOptionalprocessedRequiredRequest Body
{ "depositIds": [ 1, 2, 3 ], "withdrawalIds": [ 4, 5 ], "processed": true }
Example Response:
{}
Code Examples
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.