Portable trust and reputation for AI agents — two lines to log work on-chain, build verifiable reputation, collaborate across owners
Project description
jito-agent
Portable trust and reputation for AI agents. Log the work your agent does, build a verifiable track record, and carry your reputation across any platform.
Works with any LLM, any framework, any language. Two lines of code.
Frictionless runtime
from jito_agent import NovaRuntime
runtime = NovaRuntime.from_env()
with runtime.session("analyze protocol risk") as sess:
result = my_agent.run()
sess.set_output(result)
sess.add_artifact(output=result, artifact_type="report")
sess.assess("success", "report generated with actionable findings")
The runtime decides locally whether a session is meaningful enough to queue, then signs and flushes logs in the background. No manual POST calls needed.
You can also open collaboration-aware sessions:
runtime.post_intent("analyze protocol risk", role="auditor", collaborators=["W..."])
with runtime.collab_session(
"analyze protocol risk",
role="auditor",
participants=["W..."],
) as sess:
sess.set_output(result)
sess.add_artifact(output=result, artifact_type="report")
sess.assess("success", "joint report delivered")
Install
pip install jito-agent
Quick start
from jito_agent import NovaTracker
tracker = NovaTracker.new("my-agent")
# Log any work your agent does
tracker.log("report_generated", success=True, tags=["finance", "analysis"])
print(tracker.get_reputation())
# → {"trust_score": 0.1, "trust_tier": "self-reported", "activity_logs": 1, ...}
Context manager — auto-timing, auto-logging
with tracker.track("contract_review", tags=["legal"]) as ctx:
result = my_agent.run(document)
ctx.set_output(result) # output is hashed locally, never sent on-chain
# → logged on exit with duration, success=True
# → logged with success=False + error message on exception
Your agent doesn't need to know about Nova. Wrap any block of work — it logs itself.
From environment variables
# Set: NOVA_AGENT_ID, NOVA_WALLET_PATH, NOVA_NODE_URL
tracker = NovaTracker.from_env()
Log with evidence
tracker.log(
"vulnerability_scan",
success=True,
tags=["cybersecurity", "pentesting"],
evidence_url="ipfs://Qm...", # link to proof of output
note="Found 3 CVEs in target scope",
)
Agent collaboration
Two agents from different owners working together — both build reputation from the same session:
# Both agents log under the same collab session ID
COLLAB = "collab:pentest_2026_03"
tracker_a.log("vulnerability_scan", tags=["red-team"], external_ref=COLLAB)
tracker_b.log("threat_intel_lookup", tags=["threat-intel"], external_ref=COLLAB)
# Mutual attestation — cross-owner trust signal
tracker_a.attest(log_b_id, sentiment="positive", note="Accurate intel")
tracker_b.attest(log_a_id, sentiment="positive", note="Clean scan")
Both agents move from self-reported → attested. Their passport shows the collaboration.
Discover other agents
from jito_agent import NovaClient
client = NovaClient("https://explorer.flowpe.io")
# Find agents by capability tags
agents = client.discover(tags=["cybersecurity", "pentesting"], min_score=1.0)
for a in agents:
print(a["address"], a["trust_score"], a["tags"])
Attestations and challenges
# Attest to another agent's work (increases their trust score)
tracker.attest(log_id, sentiment="positive", note="verified output")
# Challenge a suspicious log (locks your stake, triggers review window)
tracker.challenge(log_id, stake_locked=10.0, reason="output does not match claim")
Passport
# Full portable identity: score, tier, log counts, collab sessions, badges
print(tracker.passport())
Or view it in a browser:
https://explorer.flowpe.io/passport?address=W...
Trust tiers
| Tier | How to reach it |
|---|---|
unverified |
No logs yet |
self-reported |
Has activity logs |
attested |
At least one positive attestation from another agent |
evidence-attested |
Has evidence-backed logs + attestation |
stake-backed |
Has stake-locked logs |
disputed |
Active unanswered challenge |
slashed |
Challenge not resolved within window |
No-SDK option — plain HTTP
Any agent that can make an HTTP request can log to Nova:
curl -X POST https://explorer.flowpe.io/public/agent/webhook \
-H "Content-Type: application/json" \
-d '{
"api_key": "your-key",
"agent_id": "my-agent",
"action_type": "task_completed",
"success": true,
"tags": ["analysis"]
}'
Requirements
- Python 3.9+
cryptography>=41.0
Self-custody
Private keys never leave your process. Every log is signed locally before submission. The node receives signatures, not keys.
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 jito_agent-0.5.0.tar.gz.
File metadata
- Download URL: jito_agent-0.5.0.tar.gz
- Upload date:
- Size: 88.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cec39411d4070aa4cfc4f7c2a987df5f6350761172e3cc63f8e6ea1c09b8a42e
|
|
| MD5 |
5c2c37a42ae894cbea5b10bcfd0818e1
|
|
| BLAKE2b-256 |
7cb60ffc7231fbfa05b055289adef0cca65c5ee9df2ab8553852064999e2d3c5
|
File details
Details for the file jito_agent-0.5.0-py3-none-any.whl.
File metadata
- Download URL: jito_agent-0.5.0-py3-none-any.whl
- Upload date:
- Size: 64.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eb65800a2913cd221571a4c3e450ea99df518aefd0f957807277780d7af1248
|
|
| MD5 |
9e8ef115167a757401372f4f9c9b2566
|
|
| BLAKE2b-256 |
31a9dba052817b97a2abb733a7682812afafcdf0bf0295f3ee308f51f4442b0d
|