M2M Sentinel Python SDK
Python client for Base EVM bytecode capability, common-proxy resolution, and sourced market observations. Factual static capability observation — not a formal reachability audit, safety guarantee, or transaction advice.
Installation
From PyPI (Recommended)
pip install m2m-sentinel==1.2.0
From Source
git clone https://github.com/M2M-Sentinel/m2m-sentinel-sdk.git
cd m2m-sentinel-sdk/python
pip install .
Quickstart Example
from m2m_sentinel import M2MSentinelClient, X402SignerClient
# 1. Initialize client (defaults to https://api.m2msentinel.com)
client = M2MSentinelClient(api_key="sk_starter_...")
# Observe static capabilities for a Base smart contract
response = client.audit_contract("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
audit = response["audit"]
print("Capability Rating:", audit["capabilityRating"])
print("Proxy Resolution:", audit["proxyResolution"])
# 2. Autonomous Headless x402 Micropayments (EIP-3009 Local Signing)
signer = X402SignerClient(private_key="0x...")
paid_res = signer.fetch_with_auto_payment("/v1/audit/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
print("Paid analysis:", paid_res["data"])
# Get capability index (fewer observed risky static patterns = higher score)
index = client.get_capability_score("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
print("Capability Score:", index["capabilityScore"], index["scoreMeaning"])
# Schematic paid-onboarding example. Supply these values from your private
# server/wallet flow; never hard-code credentials.
wallet_address = "0xYOUR_SUBSCRIBER_WALLET"
existing_paid_key = "READ_FROM_YOUR_SECRET_STORE"
original_payment_hash = "0xYOUR_ORIGINAL_PAYMENT_HASH"
intent = client.create_subscription_intent(
"GROWTH", wallet_address, duration_days=90,
renew_existing_key=True, api_key=existing_paid_key
)
recovery = client.create_recovery_challenge(wallet_address, tx_hash=original_payment_hash)
Method Reference
| Method | Description |
|---|---|
audit_contract(address) |
Returns static opcode capability flags, proxy resolution (EIP-1967/UUPS), and bytecode provenance on Base. |
get_capability_score(address) |
Evaluates observed static capability patterns. (Retains /v1/security/score/:address for backwards compatibility). |
get_gas_metrics() |
Fetches real-time Base network gas suggestions and congestion telemetry. |
get_token_price(symbol) |
Sourced Base DEX price observation for allowlisted assets (USDC, WETH, etc.). |
get_dex_liquidity(address) |
Sourced DEX reserve and liquidity data on Base. |
Important Notice
The route behind get_capability_score retains /v1/security/score/:address for legacy compatibility, but its value means only that fewer selected static patterns were observed. Factual static capability observation — not a formal reachability audit, safety guarantee, or transaction advice.
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 m2m_sentinel-1.2.0.tar.gz.
File metadata
- Download URL: m2m_sentinel-1.2.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5299942916f3ac90c3e6750d42a698f1bfef3ed6edbbcbd89799eebab5ff1825
|
|
| MD5 |
697d91b8e14982b6a8f98691dc50f092
|
|
| BLAKE2b-256 |
7d609a07a376d0b4145e34e5ffe711e6f7208bd796df8add90b617bc2f6f32c1
|
Provenance
The following attestation bundles were made for m2m_sentinel-1.2.0.tar.gz:
Publisher:
publish_sdk.yml on AntoineSakkalis/M2M-Sentinel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
m2m_sentinel-1.2.0.tar.gz -
Subject digest:
5299942916f3ac90c3e6750d42a698f1bfef3ed6edbbcbd89799eebab5ff1825 - Sigstore transparency entry: 2581471032
- Sigstore integration time:
-
Permalink:
AntoineSakkalis/M2M-Sentinel@fc41116c9e5a3a7990a0745e12e1375ea8c68c88 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AntoineSakkalis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_sdk.yml@fc41116c9e5a3a7990a0745e12e1375ea8c68c88 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file m2m_sentinel-1.2.0-py3-none-any.whl.
File metadata
- Download URL: m2m_sentinel-1.2.0-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a6a299d6d84b4fbfecad3d7cbfdb4376c1f57bd1d948c4cfae9088a7424ae49
|
|
| MD5 |
c55be9de19c38b3cc66eca60e104b43d
|
|
| BLAKE2b-256 |
d6c728dea88c1693b4e9fec7d51e0dd30c8ec81c772af06eccdb1a1bb84c72b4
|
Provenance
The following attestation bundles were made for m2m_sentinel-1.2.0-py3-none-any.whl:
Publisher:
publish_sdk.yml on AntoineSakkalis/M2M-Sentinel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
m2m_sentinel-1.2.0-py3-none-any.whl -
Subject digest:
9a6a299d6d84b4fbfecad3d7cbfdb4376c1f57bd1d948c4cfae9088a7424ae49 - Sigstore transparency entry: 2581471037
- Sigstore integration time:
-
Permalink:
AntoineSakkalis/M2M-Sentinel@fc41116c9e5a3a7990a0745e12e1375ea8c68c88 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AntoineSakkalis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_sdk.yml@fc41116c9e5a3a7990a0745e12e1375ea8c68c88 -
Trigger Event:
workflow_dispatch
-
Statement type: