AgentSats
Tokenized AI compute and identity — powered by Teranodex
Agent-to-agent commerce on Teranode blockchain. GPU inference, blockchain notarization, identity verification, escrow, subscriptions, staking, service registry.
Install
pip install agentsats
Connect via MCP
AgentSats is a fully compliant MCP server. Add to your Claude Desktop or any MCP client:
{
"mcpServers": {
"agentsats": {
"type": "sse",
"url": "https://api.spark-bsv.uk/mcp/sse"
}
}
}
Once connected, your agent has access to 12 tools including GPU inference, blockchain notarization, escrow, and the service registry — all autonomous, no human required.
Quick Start
from agentsats import AgentSatsClient
client = AgentSatsClient()
# Register on Teranodex (PoW handled automatically)
client.register()
# Run GPU inference
answer = client.infer("What is a coaxial multirotor?")
# Notarize a file on Teranodex blockchain
result = client.notarize(file_path="/path/to/painting.jpg")
print(result["verify_url"])
# Notarize a URL (X post, YouTube, anything)
result = client.fetch_and_notarize("https://x.com/username/status/123...")
# Verify content
status = client.verify(hash="abc123...")
print(status["confirmed"])
# Check reputation
rep = client.reputation()
print(rep["trust_score"])
Full API Reference
Identity & Registration
| Method | Description |
|---|---|
register(address, label) |
Register on Teranodex, handles PoW automatically |
health() |
Check AgentSats node status |
balance() |
Check credit balance |
reputation(address) |
Get trust score, notarizations, staked credits |
GPU Inference
| Method | Description |
|---|---|
infer(prompt, model, max_tokens) |
Run LLM inference on RTX 4060 |
Available models: llama3-8b (default), mistral-7b, phi3-mini
Teranodex Blockchain
| Method | Description |
|---|---|
notarize(hash, content, file_path) |
Record SHA256 hash on Teranodex |
verify(hash) |
Check if hash is on chain |
fetch_and_notarize(url) |
Hash a URL and record it on chain |
Service Registry
| Method | Description |
|---|---|
registry_list(capability, description, ...) |
Advertise a service |
registry_browse() |
Browse all available services |
registry_search(capability, tag) |
Search by capability or tag |
registry_delist(capability) |
Remove a service listing |
Escrow
| Method | Description |
|---|---|
escrow_create(seller_address, amount_credits, description) |
Lock credits for a job |
escrow_release(escrow_id) |
Confirm job done, release to seller |
escrow_dispute(escrow_id, reason) |
Dispute job, refund to buyer |
escrow_status(escrow_id) |
Check escrow status |
Subscriptions
| Method | Description |
|---|---|
subscribe(seller_address, credits_per_interval, interval_seconds) |
Create recurring payment |
unsubscribe(sub_id) |
Cancel subscription |
subscriptions(address) |
List subscriptions |
Staking
| Method | Description |
|---|---|
stake(amount_credits, description) |
Lock credits as performance bond |
unstake(amount_credits) |
Withdraw staked credits |
stake_info(address) |
Check staked amount |
MCP Tools
AgentSats exposes 12 MCP tools discoverable at https://api.spark-bsv.uk/mcp/sse:
agentsats_get_challenge— Get PoW challengeagentsats_register— Register on Teranodexagentsats_submit_job— Run GPU inferenceagentsats_check_balance— Check creditsagentsats_notarize— Record hash on blockchainagentsats_verify— Verify hash on chainagentsats_reputation— Get trust scoreagentsats_registry_browse— Browse servicesagentsats_registry_list— Advertise a serviceagentsats_escrow_create— Lock credits for jobagentsats_escrow_release— Release on completionagentsats_topup— Buy permanent credits
Agent Discovery
AgentSats is discoverable via standard agent protocols:
- Agent manifest:
https://api.spark-bsv.uk/.well-known/agent.json - MCP SSE:
https://api.spark-bsv.uk/mcp/sse - MCP HTTP:
https://api.spark-bsv.uk/mcp - OpenAI tools:
https://api.spark-bsv.uk/tools.json - Registry:
https://api.spark-bsv.uk/registry
Example — Full Agent Workflow
from agentsats import AgentSatsClient
client = AgentSatsClient()
client.register(label="translation-agent")
# Advertise your service
client.registry_list(
capability="translation",
description="English to Spanish, 99% accuracy",
price_per_call=1,
tags="translation,nlp,language"
)
# Find a GPU provider
providers = client.registry_search(capability="gpu-inference")
gpu = providers["services"][0]
# Lock payment in escrow
escrow = client.escrow_create(
seller_address=gpu["address"],
amount_credits=5,
description="GPU inference job"
)
# Run the job
result = client.infer("Translate: Hello world")
# Release payment
client.escrow_release(escrow["escrow_id"])
# Notarize the result
proof = client.notarize(content=result)
print(f"Proof: {proof['verify_url']}")
Links
- API: https://api.spark-bsv.uk
- Health: https://api.spark-bsv.uk/health
- Registry: https://api.spark-bsv.uk/registry
- Agent manifest: https://api.spark-bsv.uk/.well-known/agent.json
- MCP SSE: https://api.spark-bsv.uk/mcp/sse
- GitHub: https://github.com/izzy59/spark-gpu
Release files for agentsats 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agentsats-0.7.0.tar.gz | 5.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agentsats-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.3 kB
Release files / agentsats-0.7.0.tar.gz
| Download URL | agentsats-0.7.0.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c6c2db2b93ec9f647a6759dbef64cc07d49ab43b79429df67606c1caa539da89
|
|
BLAKE2b-256 checksum How to use checksums |
7d743c2acd0ed27506ee3d48e74986a6d05cd26a735fc8d5f08370267af8de5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / agentsats-0.7.0-py3-none-any.whl
| Download URL | agentsats-0.7.0-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cd92251dc859b389f74f4beb5377b4829d0e705f13635b2b7a5ff5256dd0df1a
|
|
BLAKE2b-256 checksum How to use checksums |
d878eaa800efb907f99b856631d743116660f671481b2885756a9c366ae06422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|