A stateless SDK and REST API server for interacting with Fireblocks and the Movement Network, enabling secure operations on Movement using Fireblocks services.
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.
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 |
APTOS_FULLNODE_URL | No | https://mainnet.movementnetwork.xyz/v1 | Movement/Aptos fullnode endpoint |
APTOS_INDEXER_URL | No | https://indexer.mainnet.movementnetwork.xyz/v1/graphql | Movement indexer (GraphQL) URL |
PORT | No | 3000 | Port to run the REST API server |
.env
:FIREBLOCKS_BASE_PATH=https://api.fireblocks.io/v1
FIREBLOCKS_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
FIREBLOCKS_SECRET_KEY_PATH=./secrets/fireblocks_secret.key
APTOS_FULLNODE_URL=https://mainnet.movementnetwork.xyz/v1
APTOS_INDEXER_URL=https://indexer.mainnet.movementnetwork.xyz/v1/graphql
PORT=3000
🔐 Never commit your
.env
file or secret key to source control.
./secrets/fireblocks_secret.key
.env
should reference this file relative to the project root:FIREBLOCKS_SECRET_KEY_PATH=./secrets/fireblocks_secret.key
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 Aptos 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.
.env
or secrets.MIT License