Skip to main content
The BlooBank API uses the Access Protocol — a request-signing scheme based on ECDSA secp256k1 signatures over a canonical request string. Every request carries four headers (X-Access-Key, X-Access-Timestamp, X-Access-Request-Id, X-Access-Signature); a missing or mis-formed header is rejected before any signature check. There are no static API tokens. Your private key stays on your infrastructure. BlooBank holds only the matching public key, used to verify your signatures.
Why signed requests instead of static tokens? A leaked API token gives an attacker full access until you rotate it. A leaked signature is worthless — it is bound to one request, at one moment in time, with one body. The private key never crosses the wire.

At a glance

1

Generate a keypair locally

Create an ECDSA secp256k1 private key on your infrastructure and derive the public half. The private key never leaves your environment.
2

Register the public key with BlooBank

Send the public key (hex-encoded, 130 characters starting with 04) to your integration support contact. BlooBank returns an Access Key — your credential identifier.
3

Sign every request

For each API call, build a canonical request string, hash it with SHA-256, sign it with your private key, and attach the four X-Access-* headers.
4

BlooBank verifies

The platform recomputes the canonical string, looks up your public key by X-Access-Key, and verifies the signature. Valid → request flows through. Invalid → 401 SIGNATURE_INVALID.

What you need

The four required headers

Failing any of these is rejected before further processing: See Error catalog for the full list.

Curve choice

The default signing curve is secp256k1 — the same curve used by Bitcoin and Ethereum, broadly supported by every mainstream crypto library. Your onboarding agreement specifies which curve is registered for your credential; if BlooBank assigned a different curve, every other rule below stays identical, only the curve changes.

Next

Generate your keys

Create your ECDSA keypair with OpenSSL.

Sign a request

Build the canonical string, hash, sign, attach the headers.

Code examples

Working signer clients in six languages.