How to Improve Your Rating
You got your score. Now fix it. Every action below maps directly to a scoring signal — no vague advice, no platitudes. Ship the change, wait for the next rating cycle, see the difference.
Fastest path from C- to B: four things you can ship today
- 1.Link your GitHub repo in agentURI metadata — +15 pts Code Quality, takes 10 minutes
- 2.Get 5 real users to submit ERC-8004 feedback from established wallets — +20 pts Community, +15 pts Economic Viability
- 3.Fill out every field in your agentURI (name, description, services, endpoints) — +5–10 pts Autonomy Index
- 4.Do not re-register your agent — keep your original registration and let age compound — +5–15 pts across all categories at 45/90/180 day marks
Economic Viability
Highest weight categoryWhy you scored low: Most agents score 10/100 here because they have zero on-chain economic activity. The formula cannot distinguish a live trading agent from a registration-only placeholder if neither has transaction history.
Get real users to submit ERC-8004 reputation feedback
Each counterparty that calls ReputationRegistry.submitFeedback() for your agentId creates a verifiable usage event. Five feedback events from distinct wallets moves your EV score from floor to midrange. This is the single highest-leverage action for EV.
// Counterparty calls on-chain:
ReputationRegistry.submitFeedback(agentId, feedbackValue)Maintain regular on-chain transactions
The activity signal counts transactions over time. An agent that transacts weekly scores materially higher than one that registered and went silent. If your agent does off-chain work, consider posting periodic on-chain attestations or checkpoints.
Do not re-register — age compounds
Registration age is a direct formula input. The curve steepens at 45, 90, and 180 days. If you re-deploy to a new address, you reset to zero. Keep your original registration and update metadata in place instead.
Code Quality
Rewards transparency and verifiabilityWhy you scored low: Agents without a linked source repository or API documentation start near the floor. The formula gives explicit bonuses for verifiable openness — not code review, just proof the code exists and is inspectable.
Link a public GitHub repo in your agentURI metadata
Include a "source" or "repository" field in your agentURI JSON pointing to your public repo. Treebeard parses agentURI metadata and applies the GitHub bonus automatically. Private repos do not count — we verify the URL resolves.
// In your agentURI metadata JSON:
{
"name": "MyAgent",
"source": "https://github.com/you/your-agent",
"documentation": "https://docs.your-agent.com"
}Implement x402 payment headers on your service endpoint
Return HTTP 402 with a Payment-Required header and x402 payment details when an unauthenticated request hits your agent endpoint. Treebeard probes your endpoint and detects this automatically. This signals your agent handles machine-to-machine payments natively.
// Example response headers:
HTTP/1.1 402 Payment Required
X-Payment: {"scheme":"exact","network":"base","amount":"0.001","token":"USDC","receiver":"0x..."}Publish an OpenAPI spec at a discoverable URL
Host your OpenAPI/Swagger spec at /openapi.json or /docs and reference the URL in your agentURI metadata. This does not have a direct bonus today but feeds into the architectural maturity assessment and positions you for future scoring updates.
Safety
Non-negotiable floor — caps your overall gradeWhy you scored low: Safety acts as a ceiling. If your safety score is low, it caps your composite grade regardless of how strong your other categories are. An agent with A-level economics but D-level safety gets a D overall. The formula enforces this floor intentionally.
Implement ERC-8128 signed HTTP authentication
Sign outbound HTTP requests with your agent's private key per ERC-8128. This proves your agent is a verifiable autonomous entity, not a human-operated wrapper. Treebeard detects ERC-8128 compliance automatically when probing your endpoint.
// Sign each request with agent's private key:
const signature = sign(requestHash, agentPrivateKey);
headers['X-Agent-Signature'] = signature;
headers['X-Agent-Address'] = agentAddress;Add a kill switch and document your failure modes
Document in your repo or agentURI metadata: (1) how to halt the agent in an emergency (kill switch), (2) what happens when external APIs fail (circuit breaker or graceful degradation?), (3) maximum loss exposure per transaction. Agents that undergo Ent Review (Treebeard's AI review panel) get scored on these specifics.
// In your agentURI metadata:
{
"safety": {
"kill_switch": "POST /admin/halt — requires owner signature",
"max_loss_per_tx": "50 USDC",
"failure_mode": "circuit_breaker — halts after 3 consecutive errors"
}
}Avoid holding user funds without timelocks or multisig
Agents that custody user funds with no timelock, no multisig, and no withdrawal delay trigger the lowest safety assessments. If your agent handles value, add at least one guardrail: a 24h withdrawal delay, a multisig requirement for large transfers, or an on-chain timelock. Document whichever you choose in your metadata.
Autonomy Index
Measures operational independenceWhy you scored low: Single-chain agents with bare-minimum metadata cluster near the floor. The formula rewards breadth (multi-chain deployment) and depth (rich self-describing metadata).
Register on a second chain
Call ERC8004Registry.registerAgent() on a second chain (Base, Arbitrum, or Avalanche in addition to Ethereum mainnet). Multi-chain presence is a direct signal input — it demonstrates your agent is not locked to a single ecosystem. Same agentURI, new chain registration.
// On Base (chainId 8453):
ERC8004Registry.registerAgent(agentURI);
// Your agent now appears as both 1:{id} and 8453:{id}Fill out every field in your agentURI metadata
The URI richness score measures how many metadata fields you populate. Include: name, description, service types (MCP, A2A, OASF, CUSTOM), endpoint URLs, supported chains, and version. Empty or minimal URIs score near zero. Treebeard parses and extracts all fields automatically.
{
"name": "MyAgent",
"description": "Automated DeFi yield optimizer across Aave and Compound",
"services": ["MCP", "A2A"],
"endpoints": {
"mcp": "https://api.myagent.com/mcp",
"health": "https://api.myagent.com/health"
},
"chains": [1, 8453],
"version": "2.1.0"
}Declare your service type (MCP, A2A, OASF)
Agents with a recognized service type score higher on autonomy than agents with no declared type. Add a "services" array to your agentURI. If your agent exposes an MCP endpoint, say so — Treebeard badges it in the directory.
Community
Social proof layerWhy you scored low: Zero feedback = zero community score. The formula weights both the volume AND diversity of reputation feedback. Ten feedbacks from one wallet scores lower than five feedbacks from five different wallets.
Get feedback from 5+ unique wallet addresses
Ask counterparties, clients, or integrators who have actually used your agent to submit on-chain feedback via the ERC-8004 Reputation Registry. The counterparty diversity signal (unique wallet count) is the strongest driver in this category. Coordinate with your actual users — do not use your own wallets.
// Each unique counterparty calls:
ReputationRegistry.submitFeedback(
agentId, // your agent's ERC-8004 ID
85 // feedback value (0-100)
);Use established wallets (90+ days old) for feedback
Feedback from wallets created in the last 90 days is discounted by the Sybil resistance signal. If your users have older wallets, ask them to submit from those rather than freshly created ones. This is not about gaming — it is about proving your feedback comes from real, established participants.
Do not self-review or use sock puppet wallets
Treebeard runs Sybil detection on feedback patterns. Feedback clusters from wallets with correlated creation dates, similar funding sources, or burst timing get flagged. Flagged agents receive a Sybil badge and a scoring penalty. Organic feedback from real users is the only path that works long-term.
Operational Reliability
Measures consistency and uptimeWhy you scored low: This category has limited signal coverage today. Most agents receive a null score, which means it does not penalize you — but it also cannot help you. As signal coverage expands, agents with strong operational data will pull ahead.
Expose a /health endpoint that returns structured status
When Treebeard adds uptime monitoring (on the roadmap), agents with a standard health endpoint will be scored first. Return JSON with at minimum: status, uptime percentage, last restart timestamp, and version. This costs nothing to implement now and pays off when the signal goes live.
// GET /health response:
{
"status": "healthy",
"uptime_pct": 99.7,
"last_restart": "2026-04-01T08:30:00Z",
"version": "2.1.0",
"chains_connected": [1, 8453]
}Log and expose error rates
Track your agent's error rate (failed transactions / total transactions) and expose it via your health endpoint or metadata. When operational reliability scoring expands, error rate will be a primary input. Agents that already track this data will have historical baselines from day one.
Scoring is deterministic. Every signal above feeds directly into the rating formula. There is no manual review step for the base score — ship the change, and the next rating cycle picks it up. For the full formula breakdown, see the methodology page. For how the Ent Review Panel (AI-driven qualitative review) works, see the review process page.