https://github.com/fireblocks/fireblocks-sdk-js
Typescript & Javascript SDK for developers using Fireblocks API
https://github.com/fireblocks/fireblocks-sdk-js
blockchain crypto fireblocks javascript nodejs sdk typescript
Last synced: about 1 month ago
JSON representation
Typescript & Javascript SDK for developers using Fireblocks API
- Host: GitHub
- URL: https://github.com/fireblocks/fireblocks-sdk-js
- Owner: fireblocks
- License: mit
- Created: 2019-09-02T08:26:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2026-04-15T15:11:11.000Z (about 2 months ago)
- Last Synced: 2026-04-15T17:11:48.746Z (about 2 months ago)
- Topics: blockchain, crypto, fireblocks, javascript, nodejs, sdk, typescript
- Language: TypeScript
- Homepage: https://docs.fireblocks.com/api/swagger-ui/
- Size: 1.07 MB
- Stars: 83
- Watchers: 19
- Forks: 72
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## The Official Javascript & Typescript SDK for Fireblocks API
[](https://badge.fury.io/js/fireblocks-sdk)
> The current version of the SDK has changed the minimum supported Node.js version from v12 to v16.
>
> Versions older than v16 are no longer maintained by the Node.js community and are considered EOL.
### About
This repository contains the official Javascript & Typescript SDK for Fireblocks API.
For the complete API reference, go to [API reference](https://developers.fireblocks.com/reference/api-overview).
## v4 Migration
Please read the [following guide](./docs/V4-MIGRATION.md) for migration.
## Usage
#### Before You Begin
Make sure you have the credentials for Fireblocks API Services. Otherwise, please contact Fireblocks support for further instructions on how to obtain your API credentials.
#### Requirements
- [Node.js](https://nodejs.org) v16 or higher.
#### Installation
`npm install fireblocks-sdk --save`
or
`yarn add fireblocks-sdk`
#### Importing Fireblocks SDK
JavaScript:
```javascript
const FireblocksSDK = require("fireblocks-sdk").FireblocksSDK;
const fireblocks = new FireblocksSDK(privateKey, apiKey);
```
TypeScript:
```typescript
import { FireblocksSDK } from "fireblocks-sdk";
const fireblocks = new FireblocksSDK(privateKey, apiKey);
```
You can also pass additional options:
```typescript
const baseUrl = "https://api.fireblocks.io";
const authProvider: IAuthProvider = { /* Custom implementation */ };
const fireblocks = new FireblocksSDK(privateKey, apiKey, baseUrl, authProvider, options);
```
The `options` argument has the following structure:
```typescript
interface SDKOptions {
/** HTTP request timeout */
timeoutInMs?: number;
/** Proxy configurations */
proxy?: AxiosProxyConfig | false;
/** Whether to remove platform from User-Agent header */
anonymousPlatform?: boolean;
/** Additional product identifier to be prepended to the User-Agent header */
userAgent?: string;
/** TravelRule Provider options to initialize PII Client for PII encryption */
travelRuleOptions?: TravelRuleOptions;
}
```
#### Axios Interceptor
You can provide the sdk options with an [axios response interceptor](https://axios-http.com/docs/interceptors):
```ts
new FireblocksSDK(privateKey, userId, serverAddress, undefined, {
customAxiosOptions: {
interceptors: {
response: {
onFulfilled: (response) => {
console.log(`Request ID: ${response.headers["x-request-id"]}`);
return response;
},
onRejected: (error) => {
console.log(`Request ID: ${error.response.headers["x-request-id"]}`);
throw error;
}
}
}
}
});
```
#### Error Handling
The SDK throws `AxiosError` upon http errors for API requests.
You can read more about axios error handling [here](https://axios-http.com/docs/handling_errors).
You can get more data on the Fireblocks error using the following fields:
- `error.response.data.code`: The Fireblocks error code, should be provided on support tickets
- `error.response.data.message`: Explanation of the Fireblocks error
- `error.response.headers['x-request-id']`: The request ID correlated to the API request, should be provided on support tickets / Github issues