A stateless SDK and REST API server for interacting with Fireblocks and the Movement Network, enabling secure operations on Movement using Fireblocks services.
The SDK Typedocs can be found here: https://fireblocks.github.io/move-fireblocks-sdk/
Movement Fireblocks SDK lets you securely execute Movement (Aptos-based) transactions using Fireblocks vaults and raw signing. It's designed to simplify integration with Fireblocks for secure Movement transactions, supporting both direct SDK use and a REST API interface.
- Fireblocks workspace with raw signing enabled.
- Fireblocks API key and secret key file.
- Node.js v18+
- Docker and Docker Compose (for API server).
- Secure Movement Transactions: All transactions are Fireblocks-signed and submitted to Movement.
- Fireblocks raw signing support
- REST API mode: Easily integrate through HTTP requests.
- Vault pooling: Efficient per-vault instance management.
git clone https://github.com/fireblocks/move-fireblocks-sdk
cd movement-fireblocks-sdk
npm install
cp .env.example .env
Edit .env
to include your API key, private key path, and Movement config.
To start the SDK in dev mode:
npm run dev
cp .env.example .env # or create your .env manually
# Make sure your Fireblocks secret key is in ./secrets/fireblocks_secret.key
docker-compose up --build #(Dev Mode)
docker-compose -f docker-compose.yml up --build #(Prod Mode)
API will run on port
3000
by default. Change viaPORT
in.env
.
Environment variables (via .env
) control SDK behavior:
Variable | Required | Default | Description |
---|---|---|---|
FIREBLOCKS_API_KEY | Yes | – | Your Fireblocks API key |
FIREBLOCKS_SECRET_KEY_PATH | Yes | – | Path to your Fireblocks secret key file |
FIREBLOCKS_BASE_PATH | No | BasePath.US from "@fireblocks/ts-sdk" | Base URL of the Fireblocks API |
MOVEMENT_FULLNODE_URL | No | https://mainnet.movementnetwork.xyz/v1 | Movement fullnode endpoint |
MOVEMENT_INDEXER_URL | No | https://indexer.mainnet.movementnetwork.xyz/v1/graphql | Movement indexer (GraphQL) URL |
PORT | No | 3000 | Port to run the REST API server |
FIREBLOCKS_BASE_PATH=https://api.fireblocks.io/v1
FIREBLOCKS_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
FIREBLOCKS_SECRET_KEY_PATH=./secrets/fireblocks_secret.key
MOVEMENT_FULLNODE_URL=https://mainnet.movementnetwork.xyz/v1
MOVEMENT_INDEXER_URL=https://indexer.mainnet.movementnetwork.xyz/v1/graphql
PORT=3000
🔐 Never commit your
.env
file or secret key to source control.
- Place your Fireblocks private key at:
./secrets/fireblocks_secret.key
- Your
.env
should reference this file relative to the project root:
FIREBLOCKS_SECRET_KEY_PATH=./secrets/fireblocks_secret.key
- Docker Compose mounts this file automatically:
volumes:
- ./secrets/fireblocks_secret.key:/app/secrets/fireblocks_secret.key:ro
curl -X 'GET' \
'http://localhost:3000/api/<VAULT-ID>/address' \
-H 'accept: application/json'
npm run dev
Method | Route | Description |
---|---|---|
GET | /api/:vaultId/address |
Fetch the on-chain address associated with the given vault |
GET | /api/:vaultId/balance |
Get the native Movement coin balance |
GET | /api/:vaultId/balances |
Get all token and coin balances for the vault |
GET | /api/:vaultId/coins_data |
Fetch metadata about all coins held in the vault |
GET | /api/:vaultId/publicKey |
Retrieve the public key for the vault account |
GET | /api/:vaultId/transactions |
List recent submitted transactions from this vault |
GET | /api/metrics |
Prometheus-compatible service metrics |
POST | /api/:vaultId/transfer/move |
Sign and submit a generic Move transaction |
POST | /api/:vaultId/transfer/token |
Transfer a token from the vault to another account |
Swagger UI API Documentation be will be availabe at http://localhost:3000/api-docs after running the project.
- Never commit your
.env
or secrets. - Use secrets management in production.
MIT License