fireblocks-sdk-0.2.0 has been yanked.
Overview
fireblocks_sdk
is an async library for the Fireblocks API
!!!! Note this is community driven project and not affiliated with Fireblocks !!!!!
Getting Started
See developer portal and sign up for a sandbox account
Quick Start
use fireblocks_sdk::{ClientBuilder, PagingVaultRequestBuilder};
use std::time::Duration;
#[tokio::main]
async fn main() -> color_eyre::Result<()> {
let api_key = std::env::var("FIREBLOCKS_API_KEY")?;
let secret = std::env::var("FIREBLOCKS_SECRET")?;
let client = ClientBuilder::new(&api_key, &secret.into_bytes())
.with_timeout(Duration::from_secs(10))
.with_connect_timeout(Duration::from_secs(5))
.build()?;
let params = PagingVaultRequestBuilder::new().limit(10).build()?;
let (vault_accounts, request_id) = client.vaults(params).await?;
println!("Got requestId: {request_id}");
println!("vault accounts: {:#?}", vault_accounts.accounts);
Ok(())
}
Development
Create a .env file
cp .env-sameple .env
Edit .env and configure your API and secret key
Run tests:
cargo test
Supported Endpoints
Vaults
Endpoint |
Status |
GET /vault/accounts |
✓ |
POST /vault/accounts |
✓ |
GET /vault/accounts_paged |
✓ |
GET /vault/accounts/{vaultAccountId} |
✓ |
PUT /vault/accounts/{vaultAccountId} |
✓ |
GET /vault/asset_wallets |
✓ |
POST /vault/accounts/{vaultAccountId}/hide |
✗ |
POST /vault/accounts/{vaultAccountId}/unhide |
✗ |
POST /vault/accounts/{vaultAccountId}/{assetId}/activate |
✗ |
POST /vault/accounts/{vaultAccountId}/set_customer_ref_id |
✗ |
POST /vault/accounts/{vaultAccountId}/set_auto_fuel |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId} |
✓ |
POST /vault/accounts/{vaultAccountId}/{assetId} |
✓ |
POST /vault/accounts/{vaultAccountId}/{assetId}/balance |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId}/addresses |
✗ |
POST /vault/accounts/{vaultAccountId}/{assetId}/addresses |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount |
✗ |
PUT /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId} |
✗ |
POST /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id |
✗ |
POST /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs |
✗ |
GET /vault/public_key_info/ |
✗ |
GET /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info |
✗ |
GET /vault/assets |
✓ |
GET /vault/assets/{assetId} |
✓ |
Staking
Endpoint |
Status |
GET /staking/chains |
✓ |
GET /staking/chains/{chainDescriptor}/chainInfo |
✗ |
POST /staking/chains/{chainDescriptor}/stake |
✗ |
POST /staking/chains/{chainDescriptor}/unstake |
✗ |
POST /staking/chains/{chainDescriptor}/withdraw |
✗ |
POST /staking/chains/{chainDescriptor}/claimRewards |
✗ |
GET /staking/positions |
✓ |
GET /staking/positions/summary |
✓ |
GET /staking/positions/summary/vaults |
✗ |
GET /staking/positions/{id} |
✗ |
GET /staking/providers |
✗ |
POST /staking/providers/{providerId}/approveTermsOfService |
✗ |
Exchange accounts
Endpoint |
Status |
GET /exchange_accounts |
✗ |
GET /exchange_accounts/paged |
✗ |
GET /exchange_accounts/{exchangeAccountId} |
✗ |
POST /exchange_accounts/{exchangeAccountId}/internal_transfer |
✗ |
POST /exchange_accounts/{exchangeAccountId}/convert |
✗ |
GET /exchange_accounts/{exchangeAccountId}/{assetId} |
✗ |
Fiat accounts
Endpoint |
Status |
GET /fiat_accounts |
✗ |
GET /fiat_accounts/{accountId} |
✗ |
POST /fiat_accounts/{accountId}/redeem_to_linked_dda |
✗ |
POST /fiat_accounts/{accountId}/deposit_from_linked_dda |
✗ |
Network connections
Endpoint |
Status |
GET /network_connections |
✗ |
POST /network_connections |
✗ |
PATCH /network_connections/{connectionId}/set_routing_policy |
✗ |
GET /network_connections/{connectionId}/is_third_party_routing/{assetType} |
✗ |
GET /network_connections/{connectionId} |
✗ |
DELETE /network_connections/{connectionId} |
✗ |
GET /network_ids |
✗ |
POST /network_ids |
✗ |
GET /network_ids/{networkId} |
✗ |
DELETE /network_ids/{networkId} |
✗ |
PATCH /network_ids/{networkId}/set_routing_policy |
✗ |
PATCH /network_ids/{networkId}/set_discoverability |
✗ |
PATCH /network_ids/{networkId}/set_name |
✗ |
Internal wallets
Endpoint |
Status |
GET /internal_wallets |
✓ |
POST /internal_wallets |
✓ |
GET /internal_wallets/{walletId} |
✓ |
DELETE /internal_wallets/{walletId} |
✓ |
POST /internal_wallets/{walletId}/set_customer_ref_id |
✗ |
GET /internal_wallets/{walletId}/{assetId} |
✗ |
POST /internal_wallets/{walletId}/{assetId} |
✗ |
DELETE /internal_wallets/{walletId}/{assetId} |
✗ |
External wallets
Endpoint |
Status |
GET /external_wallets |
✓ |
POST /external_wallets |
✓ |
GET /external_wallets/{walletId} |
✓ |
DELETE /external_wallets/{walletId} |
✓ |
POST /external_wallets/{walletId}/set_customer_ref_id |
✗ |
GET /external_wallets/{walletId}/{assetId} |
✗ |
POST /external_wallets/{walletId}/{assetId} |
✗ |
DELETE /external_wallets/{walletId}/{assetId} |
✗ |
Contracts
Endpoint |
Status |
GET /contracts |
✗ |
POST /contracts |
✗ |
GET /contracts/{contractId} |
✗ |
DELETE /contracts/{contractId} |
✗ |
GET /contracts/{contractId}/{assetId} |
✗ |
POST /contracts/{contractId}/{assetId} |
✗ |
DELETE /contracts/{contractId}/{assetId} |
✗ |
Blockchains & assets
Endpoint |
Status |
GET /supported_assets |
✗ |
POST /assets |
✗ |
GET /estimate_network_fee |
✗ |
GET /transactions/validate_address/{assetId}/{address} |
✗ |
Transactions
Endpoint |
Status |
GET /transactions |
✗ |
POST /transactions |
✗ |
POST /transactions/estimate_fee |
✗ |
GET /transactions/{txId} |
✗ |
GET /transactions/external_tx_id/{externalTxId}/ |
✗ |
POST /transactions/{txId}/set_confirmation_threshold |
✗ |
POST /transactions/{txId}/drop |
✗ |
POST /transactions/{txId}/cancel |
✗ |
POST /transactions/{txId}/freeze |
✗ |
POST /transactions/{txId}/unfreeze |
✗ |
POST /txHash/{txHash}/set_confirmation_threshold |
✗ |
Payments - cross-border settlement
Endpoint |
Status |
POST /payments/xb-settlements/configs |
✗ |
GET /payments/xb-settlements/configs |
✗ |
GET /payments/xb-settlements/configs/{configId} |
✗ |
PUT /payments/xb-settlements/configs/{configId} |
✗ |
DELETE /payments/xb-settlements/configs/{configId} |
✗ |
POST /payments/xb-settlements/flows |
✗ |
GET /payments/xb-settlements/flows/{flowId} |
✗ |
POST /payments/xb-settlements/flows/{flowId}/actions/execute |
✗ |
Payments - Payout
Endpoint |
Status |
POST /payments/payout |
✗ |
POST /payments/payout/{payoutId}/actions/execute |
✗ |
GET /payments/payout/{payoutId} |
✗ |
Payments - Flows
Endpoint |
Status |
POST /payments/workflow_config |
✗ |
GET /payments/workflow_config/{configId} |
✗ |
DELETE /payments/workflow_config/{configId} |
✗ |
POST /payments/workflow_execution |
✗ |
GET /payments/workflow_execution/{workflowExecutionId} |
✗ |
POST /payments/workflow_execution/{workflowExecutionId}/actions/execute |
✗ |
Gas stations
Endpoint |
Status |
GET /gas_station |
✗ |
GET /gas_station/{assetId} |
✗ |
PUT /gas_station/configuration |
✗ |
PUT /gas_station/configuration/{assetId} |
✗ |
Workspace Management
Endpoint |
Status |
GET /management/user_groups |
✗ |
POST /management/user_groups |
✗ |
GET /management/user_groups/{groupId} |
✗ |
PUT /management/user_groups/{groupId} |
✗ |
DELETE /management/user_groups/{groupId} |
✗ |
GET /management/audit_logs |
✗ |
POST /management/ota |
✗ |
GET /management/ota |
✗ |
GET /management/workspace_status |
✗ |
GET /management/users |
✗ |
POST /management/users |
✗ |
GET /management/api_users |
✗ |
POST /management/api_users |
✗ |
POST /management/users/{id}/reset_device |
✗ |
GET /management/api_users/{userId}/whitelist_ip_addresses |
✗ |
Users
Endpoint |
Status |
GET /users |
✗ |
Audit Logs
Endpoint |
Status |
GET /audits |
✗ |
Off exchanges
Endpoint |
Status |
POST /off_exchange/add |
✗ |
POST /off_exchange/remove |
✗ |
POST /off_exchange/settlements/trader |
✗ |
GET /off_exchange/settlements/transactions |
✗ |
GET /off_exchange/collateral_accounts/{mainExchangeAccountId} |
✗ |
Webhooks
Endpoint |
Status |
POST /webhooks/resend |
✗ |
POST /webhooks/resend/{txId} |
✗ |
NFTs
Endpoint |
Status |
PUT /nfts/ownership/tokens |
✗ |
GET /nfts/ownership/tokens |
✗ |
GET /nfts/ownership/assets |
✗ |
GET /nfts/ownership/collections |
✗ |
PUT /nfts/tokens/{id} |
✗ |
GET /nfts/tokens/{id} |
✗ |
GET /nfts/tokens |
✗ |
PUT /nfts/ownership/tokens/{id}/status |
✗ |
PUT /nfts/ownership/tokens/status |
✗ |
PUT /api/v1/nfts/ownership/tokens/spam |
✗ |
WalletLink
Endpoint |
Status |
GET /connections |
✗ |
POST /connections/wc |
✗ |
PUT /connections/wc/{id} |
✗ |
DELETE /connections/wc/{id} |
✗ |
Travel Rule (Beta)
Endpoint |
Status |
POST /screening/travel_rule/transaction/validate |
✗ |
POST /screening/travel_rule/transaction/validate/full |
✗ |
GET /screening/travel_rule/vasp/{did} |
✗ |
GET /screening/travel_rule/vasp |
✗ |
PUT /screeening/travel_rule/vasp/update |
✗ |
Policy Editor (Beta)
Endpoint |
Status |
GET /tap/active_policy |
✗ |
GET /tap/draft |
✗ |
PUT /tap/draft |
✗ |
POST /tap/draft |
✗ |
POST /tap/publish |
✗ |
Smart Transfer
Endpoint |
Status |
POST /smart-transfers |
✗ |
GET /smart-transfers |
✗ |
GET /smart-transfers/{ticketId} |
✗ |
PUT /smart-transfers/{ticketId}/expires-in |
✗ |
PUT /smart-transfers/{ticketId}/external-id |
✗ |
PUT /smart-transfers/{ticketId}/submit |
✗ |
PUT /smart-transfers/{ticketId}/fulfill |
✗ |
PUT /smart-transfers/{ticketId}/cancel |
✗ |
POST /smart-transfers/{ticketId}/terms |
✗ |
GET /smart-transfers/{ticketId}/terms/{termId} |
✗ |
PUT /smart-transfers/{ticketId}/terms/{termId} |
✗ |
DELETE /smart-transfers/{ticketId}/terms/{termId} |
✗ |
PUT /smart-transfers/{ticketId}/terms/{termId}/fund |
✗ |
PUT /smart-transfers/{ticketId}/terms/{termId}/manually-fund |
✗ |
POST /smart-transfers/settings/user-groups |
✗ |
GET /smart-transfers/settings/user-groups |
✗ |