Let's start using Blockmate APIs to create your basic app.

We'll go through these few simple steps:

Create end-user
Authenticate end-user
Connect Onchain wallets / CEXs / NFTs
Integrate Account information endpoints into your app



  1. ⚑️ Register for the Blockmate's portal ⚑️
  2. Create new project - virtual entity as a group of end-users
  3. Generate new key token

To interact with all API services you need to have a project authorization token.

If you already have your token, you're ready to start coding. If not, please Register HERE

Now, when you have a token, you can jump in and check out how it all works, add your API token and run this example python script:

  1. Install python3 - 'Windows/Linux/Mac tutorials'
  2. Install the required library pip3 install requests
  3. Paste your token into themy_project_token variable
  4. Execute the following python script: python3 ./blockmate-demo.py

import requests
import json
import time
import sys

# Fill in your token

# Create a user
r = requests.post("https://api.blockmate.io/v1/users", json={"name": "test-user"}, headers={"X-API-KEY": my_project_token})
user_uuid = r.json()["uuid"]
print(f"We got user with id: {user_uuid}")

# Authenticate the user
r = requests.get(f"https://api.blockmate.io/v1/users/{user_uuid}/auth", headers={"X-API-KEY": my_project_token})
user_jwt_token = r.json()["token"]
print(f"We got JWT token for the user")

# Connect a BTC wallet (account) to user
r = requests.post("https://api.blockmate.io/v1/onchain/btc/connect", json={"description": "My test btc address", "wallet": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"}, headers={"Authorization": f"Bearer {user_jwt_token}"})
account_id = r.json()["id"]
print(f"We connected an account to user with id: {account_id}")

# Get the balance, when it's ready
print("Waiting for sync", end="")
while True:
    r = requests.get(f"https://api.blockmate.io/v1/onchain/btc/account/{account_id}/balance", headers={"Authorization": f"Bearer {user_jwt_token}"})
    balance = r.json()
    if balance["state"]["last_sync"] is not None: break
print("=== Balance ===")

# Get the transactions
r = requests.get(f"https://api.blockmate.io/v1/onchain/btc/account/{account_id}/transactions", headers={"Authorization": f"Bearer {user_jwt_token}"})
transactions = r.json()
print("=== Transactions ===")
print(json.dumps(transactions["transactions"], indent=4))

If you would like to go step by step please follow the instructions:

1/ Register End-users

For working with Project level API endpoints you need to add a project authorization token in each request in the header:



Security Scheme Type:	API Key
Header parameter name:	X-API-KEY

POST <https://api.blockmate.io/v1/users>

    "name": "some-name"
    "uuid": "4301140e-d639-11ec-9120-00155d03ab64",
    "name": "some-name"

2/ Authenticate End-user

From the response from step #1 you will get the End-user ID (uuid).

Using uuid as url parameter and the same header as in the previous step, you will authenticate end-user for subsequent operations.


GET <https://api.blockmate.io/v1/users/{uuid}/auth>

    "token": "string"


From this point, you will be using JTW token from this response as Authorization header parameter.

3/ Connect your Bitcoin wallet



Authorization:	"Bearer {token}"

POST /v1/onchain/{onchain}/connect

for example, adding Bitcoin wallet to your account

POST /v1/onchain/btc/connect

    "wallet": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
    "description": "string"
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "string",
    "description": "string"

4/ Basic operations

Request balance information for single account connection:

account_id is a variable from the previous call

GET <https://api.blockmate.io/v1/onchain/{onchain}/account/{account_id}/balance>

    "property1": 0,
    "property2": 0

5/ Advanced operations

To get the cumulative balance from every connected asset, you need to call just one endpoint.


GET <https://api.blockmate.io/v1/aggregate/balance>

    "BTC": 10.1,
    "LTC": 2.2,