Python SDK for Beav3r approval and relay flows.
Project description
beav3r-sdk
Python SDK for Beav3r action requests, relay approvals, signer registration, and approval submission.
Install
From PyPI
python3 -m pip install beav3r-sdk
From source
cd beav3r-sdk-py
python3 -m pip install -e .
For direct source execution without installing the package, use PYTHONPATH=src.
Environment endpoints:
- Staging:
https://staging.server.beav3r.ai - Production:
https://server.beav3r.ai
Quick example
from beav3r_sdk import Beav3r
client = Beav3r(
base_url="https://staging.server.beav3r.ai",
agent_id="agent_demo_1",
api_key="bvr_test_...",
default_expiry_seconds=180,
)
result = client.guard(
{
"actionType": "transfer",
"payload": {"asset": "USDT", "amount": 5, "destination": "0xlowdemo"},
"attributes": {"asset": "USDT", "amount": 5, "destination": "0xlowdemo"},
}
)
print(result)
Execution authorization helpers
The SDK includes execution-gating helpers for fail-closed executors:
guard_and_wait(..., audience="your-executor")to attach a signed execution authorization artifact on approved/executed outcomesmint_execution_authorization({"actionId": "...", "audience": "..."})to mint directlyverify_execution_authorization(...)andis_valid_execution_authorization(...)to validate signature, expiry, audience, andactionHash
Where to get verification keys:
- Preferred: configure the execution-authorization private key on the Beav3r server, then fetch public keys from:
GET /.well-known/execution-authorization-keys
- Optional fallback: if discovery is unavailable, provide a static map like:
{"keyId":"BASE64_PUBLIC_KEY"}- Example env override (same format):
BEAV3R_EXECUTION_PUBLIC_KEYS={"keyId":"BASE64_PUBLIC_KEY"}
from beav3r_sdk import Beav3r, verify_execution_authorization
public_keys = {
# Prefer loading from GET /.well-known/execution-authorization-keys
"kid_1": "<base64-ed25519-public-key>",
}
result = client.guard_and_wait(
{"actionType": "payments.send_usdt", "payload": {...}, "attributes": {...}},
audience="payments-executor",
)
artifact = result.get("executionAuthorizationArtifact")
if artifact:
verify_execution_authorization(
{
"artifact": artifact,
"action": {
"actionId": "...",
"agentId": "...",
"actionType": "payments.send_usdt",
"payload": {...},
"attributes": {...},
"timestamp": 1700000000,
"nonce": "...",
"expiry": 1700000300,
},
"audience": "payments-executor",
"publicKeys": public_keys,
}
)
Demo
python3 examples/agent_demo.py high
python3 examples/agent_demo.py watch act_high_123
The demo looks for BEAV3R_ENV_FILE first, then nearby .env files in the SDK repo or sibling beav3r-server and beav3r-demo folders. If you use the signing flows, install PyNaCl so device signing works.
Compatibility note
As of the 2026-04-03 security hardening pass:
reject_approval(...)must sendsignatureandexpiry- device-scoped reads use signed query parameters for:
get_action_status_with_optionsget_action_with_optionslist_pending_actionslist_recent_actions
/actions/requestnow requires an API key withactions:relay/actions/{actionId}/execution-authorizationrequires an API key withactions:execute/actions/{actionId}/execution-authorization/redeemrequires an API key withactions:execute
verify_execution_authorization(...) also accepts an optional usedArtifactIds set so an executor can fail closed on replayed artifacts. For production executors, back that check with durable shared storage instead of process-local memory.
Typical enforced executor flow:
- call
guard_and_wait(...) - receive
executionAuthorizationArtifact - verify the artifact locally
- call
redeem_execution_authorization(...) - only execute if redemption succeeds
If the Beav3r server changes auth or approval-signing behavior again, review the sibling integrations in the shared ~/beav3r workspace before release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beav3r_sdk-2.0.0b4.tar.gz.
File metadata
- Download URL: beav3r_sdk-2.0.0b4.tar.gz
- Upload date:
- Size: 20.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4e7473d0fb98ed05b1938a032d726d32c68ae1890fa523599f55aa49e88cc6e
|
|
| MD5 |
c2941493884ce37ee672415500203cbf
|
|
| BLAKE2b-256 |
216b302827d91113b539303f975a7cb19a1e2450a95b02ffe92f73532eebf47a
|
File details
Details for the file beav3r_sdk-2.0.0b4-py3-none-any.whl.
File metadata
- Download URL: beav3r_sdk-2.0.0b4-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83dda3f3cc2afc75514bfb89161568b7ded2957bdcbb119490867c66cef9aacc
|
|
| MD5 |
c33dc9844f8af1284cbb2590b0ec58af
|
|
| BLAKE2b-256 |
0d49fe43400b9dd0262b1c0c9e5adbcf8006b3ac0d5b0fa17dc911f5637619bf
|