Skip to main content

bpc-client

Python client SDK for the BPC (Bound Pair Credentials) protocol — cryptographic device-binding and per-request signing for APIs.

BPC replaces static API keys with a multi-factor, per-request signing protocol. Every request is signed with an ECDSA P-256 device key, a user-chosen secret (HMAC-derived), a fresh nonce, and a timestamp. Stolen credentials are useless without the device key.

Install

pip install bpc-client

3-Line Integration

from bpc_client import BPCClient

# Register a new pair (development mode — auto-approved)
client = BPCClient.register(base_url="https://api.example.com", name="my-app", secret="MySecret1!")

# Every request is automatically signed
response = client.get("/api/data")
response = client.post("/api/items", json={"name": "test"})

CLI

bpc pair register --url https://api.example.com --name my-app --secret MySecret1!
bpc pair list
bpc status --name my-app
bpc audit --name my-app
bpc request GET /api/data --name my-app

MCP Server (Claude Desktop)

{
  "mcpServers": {
    "bpc": { "command": "bpc-mcp" }
  }
}

Protocol

BPC implements a 12-step server-side verification pipeline: device key (ECDSA P-256) + secret (HMAC-SHA-256) + nonce (UUID) + timestamp (60s window) + body hash (SHA-256) + scope enforcement.

See the full spec.

Release files for bpc-client 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bpc-client 1.0.0
File Size Uploaded
bpc_client-1.0.0.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bpc-client 1.0.0
File Interpreter ABI Platform
bpc_client-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size:27.9 kB

Release files / bpc_client-1.0.0.tar.gz

Download URL bpc_client-1.0.0.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2ea1e4844eea2d4541c01cbc7ff05b4fb8dbd345f00300edccfbac813af7bec6
BLAKE2b-256 checksum
How to use checksums
96f9a2e961c67c0a8f1079c547de0c3758a792e7e31dfea9543470fea50f4bff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0rc1

Release files / bpc_client-1.0.0-py3-none-any.whl

Download URL bpc_client-1.0.0-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9723a8fb86c4c81f87f4fc6624323c93ce6b23bfad8dce375ce6c7e91997b6a1
BLAKE2b-256 checksum
How to use checksums
c4dd6c23c6285c0f6ba01080af2db0cac7f460873379e61e6c90c403e5beff50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0rc1

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page