Python SDK for the Claw401 X401 wallet authentication protocol
Project description
claw401
Python SDK for the Claw401 X401 wallet authentication protocol.
Install
pip install claw401
Overview
Implements the X401 challenge-response authentication flow for Solana Ed25519 wallet keys.
Usage
Generate and verify a challenge
from claw401 import generate_challenge, verify_signature, InMemoryNonceCache
from claw401.types import SignedChallenge
nonce_cache = InMemoryNonceCache()
# Server: generate challenge
challenge = generate_challenge(domain="app.example.com")
# Client signs challenge_signing_bytes(challenge) with their Ed25519 key
# ...
# Server: verify
signed = SignedChallenge(
challenge=challenge,
signature="<base64-signature>",
public_key="<base58-public-key>",
)
result = verify_signature(signed, "app.example.com", nonce_cache)
if result.valid:
print(result.public_key) # authenticated wallet address
Create a session
from claw401 import create_session, verify_session
session = create_session(
public_key=result.public_key,
domain="app.example.com",
nonce=challenge.nonce,
scopes=["read", "write"],
)
# Later: verify session
result = verify_session(session, "app.example.com", required_scopes=["write"])
Agent attestation
from claw401 import create_agent_attestation, verify_agent_attestation
attestation = create_agent_attestation(
agent_key=agent_pubkey,
operator_key=operator_pubkey,
operator_secret_key=operator_signing_key,
agent_id="my-agent-001",
actions=["read:orders", "submit:tx"],
mcp_tools=["get_order", "submit_settlement"],
ttl_ms=24 * 60 * 60 * 1000,
)
result = verify_agent_attestation(attestation, expected_operator_key=operator_pubkey)
License
Apache-2.0
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
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
claw401-0.1.0-py3-none-any.whl
(12.3 kB
view details)
File details
Details for the file claw401-0.1.0-py3-none-any.whl.
File metadata
- Download URL: claw401-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.6 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73e8b00a479090be08e4afd1166817029c25dfdef16b2145269346fb0e6582f7
|
|
| MD5 |
16e89b296a7d4fcc0d455fab7ed9751a
|
|
| BLAKE2b-256 |
db321b906cf35b551046955218eec4b7eff84a478b2b57365c04c5d5acbbf78a
|