Network Link Integration Guide for Provider Connectivity

📘

Want to know more about the Provider Network and commercial prerequisites?

Visit our Help Center article about the Provider Network to learn more.

Registering as a service provider

Once your license agreement for listing your service with Fireblocks is signed, the Fireblocks technical team will request the following connected account registration settings:

  1. Display name (e.g., "My Exchange" or "My Exchange Sandbox")
  2. Icon (a 32x32 .svg file)
  3. Step-by-step guide for generating an API key for your platform
    1. A public link to your knowledge base is preferred. A shareable document or PDF is also acceptable.
  4. Base URL for your API endpoints (e.g., "https://my-service.com/fireblocks")
  5. Will your service provide a sandbox environment?
  6. For Off-Exchange capabilities, please provide your CSR file.
  7. User credentials for testing
  8. Which signing method will your server use for all requests? Please choose one of the supported options by specifying the pre-encoding function, signing algorithm, and post-encoding function during the server onboarding process.
    1. Pre-encoding options:
      1. URL encoded
      2. Base64
      3. HexStr
      4. Base58
      5. Base32
    2. Signing algorithms & possible hash functions:
      1. HMAC (SHA512, SHA3_256, or SHA256)
      2. RSA PKCS1v15 (SHA512, SHA3_256, or SHA256)
      3. ECDSA prime256v1/secp256k1 (SHA256 only)
    3. Post-encoding options: (URL encoding not supported)
      1. Base64
      2. HexStr
      3. Base58
      4. Base32
  9. Validation tool results

IP allowlisting

All API calls from Fireblocks to your service are sent from a fixed set of IP addresses, grouped by geographical region. Your service should allowlist these addresses to allow Fireblocks communication with your servers.

Singapore Europe USA
  • 18.99.36.0
  • 18.99.36.1
  • 18.99.36.2
  • 18.99.36.3
  • 18.99.36.4
  • 18.99.36.5
  • 18.99.36.6
  • 18.99.36.7
  • 18.99.36.8
  • 18.99.36.9
  • 52.76.208.129
  • 18.98.161.0
  • 18.98.161.1
  • 18.98.161.2
  • 18.98.161.3
  • 18.98.161.4
  • 18.98.161.5
  • 18.98.161.6
  • 18.98.161.7
  • 18.98.161.8
  • 18.98.161.9
  • 18.98.161.10
  • 18.98.161.11
  • 18.98.161.12
  • 18.98.161.13
  • 18.98.161.14
  • 18.98.161.15
  • 18.98.161.16
  • 18.98.161.17
  • 18.98.161.18
  • 18.98.161.19
  • 18.133.153.74
  • 3.10.68.107
  • 3.64.123.47
  • 18.158.242.74
  • 3.10.103.242
  • 3.67.233.15
  • 18.97.132.0
  • 18.97.132.1
  • 18.97.132.2
  • 18.97.132.3
  • 18.97.132.4
  • 18.97.132.5
  • 18.97.132.6
  • 18.97.132.7
  • 18.97.132.8
  • 18.97.132.9
  • 40.117.39.160

Mandatory endpoints implementation per user flow

Minimum viable provider

  • Required GET /capabilities response: "accounts": ["*"]
  • Required endpoints:
    • GET /capabilities
    • GET /capabilities/assets
    • GET /accounts
    • GET /accounts/{accountId}

Balance support

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"]
  • Required endpoints:
    • GET /accounts/{accountId}/balances

Transfer support

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"]
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}

Blockchain transfer

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"], "transfersBlockchain": ["*"]
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}
    • POST /accounts/{accountId}/transfers/deposits/addresses
    • GET /accounts/{accountId]/transfers/deposits/addresses
    • GET /accounts/{accountId}/transfers/deposits/addresses/{id}
    • POST /accounts/{accountId}/transfers/withdrawals/blockchain

Peer transfer

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"], "transfersPeerAccounts": ["*"]
    • For fiat assets, add "transfersFiat": ["*"] to the response.
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}
    • POST /accounts/{accountId}/transfers/withdrawals/peeraccount

Internal transfer

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"], "transfersInternal": ["*"]
    • For fiat assets, add "transfersFiat": ["*"] to the response.
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}
    • POST /accounts/{accountId}/transfers/withdrawals/subaccount

Fiat transfer

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"], "transfersFiat": ["*"]
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}
    • POST /accounts/{accountId}/transfers/withdrawals/fiat

Trading support

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "trading": ["*"]
  • Required endpoints:
    • GET /capabilities/trading/books
    • GET /trading/books/{id}
    • GET /accounts/{accountId}/trading/orders
    • POST /accounts/{accountId}/trading/orders
    • GET /accounts/{accountId}/trading/orders/{id}
    • GET /accounts/{accountId}/trading/books/{id}/history

Liquidity/RFQ support

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "liquidity": ["*"]
  • Required endpoints:
    • GET /capabilities/liquidity/quotes
    • POST /accounts/{accountId}/liquidity/quotes
    • GET /accounts/{accountId}/liquidity/quotes
    • GET /accounts/{accountId}/liquidity/quotes/{id}
    • POST /accounts/{accountId}/liquidity/quotes/{id}/execute

On-/Off-Ramp & Bridging

  • Required GET /capabilities response: "accounts": ["*"], "ramps": ["*"], "balances": ["*"]
    • For prefunded flows, "balances": ["*"] must be returned with GET account API. See below.
  • Required endpoints:
    • GET /accounts/{accountId}/capabilities/ramps
    • POST /accounts/{accountId}/ramps
    • GET /accounts/{accountId}/ramps
    • GET /accounts/{accountId}/ramps/{id}
    • GET /accounts/{accountId}/balances (only for prefunded flows)
    • GET /accounts/{accountId}/rate
      • Your service should implement the rate endpoint to ensure Fireblocks customers see your service's real-time rates for asset pairs. Otherwise, Fireblocks defaults to quotes or its internal rating service.

Collateral

  • Required GET /capabilities response: "accounts": ["*"], "balances": ["*"], "transfers": ["*"], "transfersBlockchain": ["*"], "collateral": ["*"]
  • Required endpoints:
    • GET /accounts/{accountId}/balances
    • GET /accounts/{accountId}/capabilities/transfers/deposits
    • GET /accounts/{accountId}/capabilities/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/deposits
    • GET /accounts/{accountId}/transfers/deposits/{id}
    • GET /accounts/{accountId}/transfers/withdrawals
    • GET /accounts/{accountId}/transfers/withdrawals/{id}
    • POST /accounts/{accountId}/transfers/deposits/addresses
    • GET /accounts/{accountId}/transfers/deposits/addresses
    • GET /accounts/{accountId}/transfers/deposits/addresses/{id}
    • POST /accounts/{accountId}/transfers/withdrawals/blockchain
  • Collateral endpoints:
    • POST accounts/{accountId}/collateral/link
    • GET accounts/{accountId}/collateral/link
    • POST accounts/{accountId}/collateral/{collateralId}/addresses
    • GET accounts/{accountId}/collateral/{collateralId}/addresses
    • GET accounts/{accountId}/collateral/{collateralId}/addresses/{id}
    • POST accounts/{accountId}/collateral/{collateralId}/intents/deposits
    • POST accounts/{accountId}/collateral/{collateralId}/deposits
    • GET accounts/{accountId}/collateral/{collateralId}/deposits
    • GET accounts/{accountId}/collateral/{collateralId}/deposits/{collateralTxId}
    • POST accounts/{accountId}/collateral/{collateralId}/intents/withdrawals
    • POST accounts/{accountId}/collateral/{collateralId}/withdrawals
    • GET accounts/{accountId}/collateral/{collateralId}/withdrawals
    • GET accounts/{accountId}/collateral/{collateralId}/withdrawals/{collateralTxId}
    • POST accounts/{accountId}/collateral/{collateralId}/settlement
    • GET accounts/{accountId}/collateral/{collateralId}/settlement
    • GET accounts/{accountId}/collateral/{collateralId}/settlements/{settlementVersion}