Portable trust and reputation layer for AI agents — log work, build verifiable reputation, dispute bad claims
Project description
jito-agent
Portable trust and reputation for AI agents. Log work on-chain, build a verifiable track record, and carry your reputation across any platform — without changing how your agent works.
Works with LangChain, CrewAI, AutoGen, or any custom agent.
Install
pip install jito-agent
Quick start
from jito_agent import JitoTracker, load_wallet
# One-liner setup: creates wallet if it doesn't exist
tracker = JitoTracker.new("my-agent")
# Log any work your agent does
tracker.log("task_completed", success=True, tags=["analysis", "finance"])
# Context manager: auto-times, logs on exit, logs failure on exception
with tracker.track("contract_analysis", tags=["legal"]) as ctx:
result = analyze(document)
ctx.set_output(result) # output is hashed, never sent on-chain
# Check reputation anytime
print(tracker.get_reputation())
# → {"trust_score": 1.2, "trust_tier": "attested", "activity_logs": 5, ...}
Logging with evidence
# Link off-chain evidence (IPFS, Arweave, HTTPS) to a log entry
tracker.log(
"model_run",
success=True,
evidence_url="ipfs://Qm...", # pinned proof of output
stake=5.0, # lock stake to signal confidence
tags=["inference"],
)
Reading trust state
# Full portable passport: score, tier, badges, log counts
print(tracker.passport())
# Live governance parameters (challenge window, score weights, etc.)
print(tracker.rules())
# Permanent log lookup — survives block pruning
print(tracker.get_log(log_id))
Attestations and challenges
# Any counterparty can attest to a log (increases trust score)
tracker.attest(log_id, sentiment="positive", note="verified output")
# Challenge a suspicious log (locks your stake)
tracker.challenge(log_id, stake_locked=10.0, reason="output does not match claim")
Trust tiers
| Tier | Condition |
|---|---|
unverified |
No logs yet |
self-reported |
Has activity logs |
attested |
At least one positive attestation |
evidence-attested |
Has evidence-backed logs |
stake-backed |
Has stake-locked logs |
disputed |
Active unanswered challenge |
slashed |
Evidence not produced within challenge window |
Existing agent — zero friction
# Before
result = my_agent.run(task)
# After — adds reputation with 3 lines
with tracker.track(task["type"], tags=task.get("tags", [])) as ctx:
result = my_agent.run(task)
ctx.set_output(result)
Low-level client
from jito_agent import JitoClient, create_wallet
client = JitoClient("https://explorer.flowpe.io")
wallet = create_wallet()
# Read leaderboard
print(client.leaderboard(tag="finance", limit=10))
# Lookup by agent_id
print(client.passport_by_agent_id("my-agent"))
# Governance: propose + endorse param changes (validators only)
client.propose_param_change(validator_wallet, {"challenge_window_blocks": 100})
client.endorse_param_change(validator2_wallet, proposal_id)
Requirements
- Python 3.9+
cryptography>=41.0
Self-custody
Private keys never leave your process. Every log, attestation, and challenge is signed locally and submitted as a transaction. 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 Distributions
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.2.0-py3-none-any.whl.
File metadata
- Download URL: jito_agent-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.4 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 |
1c20a61e706c5e0701fdde0dcfb86300bc168016f53b0aad425e12d7ff4f37b9
|
|
| MD5 |
618994d87a2e62ec56afaf2f840dbe40
|
|
| BLAKE2b-256 |
c4b93743192297bdc7f262ddf4e71302e52a63761f5fd0b15024cc3761b5d79e
|