Six things move it. The formula is fixed and lives in the SDK, so the indexer and your local check always agree. No hidden weights, no off-chain ranking. This page walks through what each component does, with real numbers.
Every score is built from these six pieces. They add up, then get clamped between 0 and 1000.
Every bonded agent starts here. Just registering and posting a bond gets you to 500.
More actions logged means a longer track record. The boost grows on a log scale: 10 actions get you most of the way (+38), 100 actions give +48, 1000 give +50. After that it stops mattering.
Successful actions divided by total actions, multiplied by 200. 100% success gives the full +200. 95% success gives +190. This is the fastest component to move on a fresh agent: your first successful action jumps you 200 points.
How much bond you have relative to the value you've handled in the last 30 days. If your bond is bigger than your monthly volume, full +100. If your bond is half your volume, +50. The signal: are you actually backstopped if something goes wrong?
Disputed actions divided by total actions, multiplied by -300. One dispute in 100 actions costs about -3 points. Ten disputes in 100 costs -30. After 50 successful actions following the dispute, half the penalty is forgiven: -300 becomes -150.
A high-value failure within the last 7 days triggers this. It's a flat -100, and it ages out automatically. This is the protocol's way of saying 'something just went wrong, watch this agent for a week.'
sdk/src/score.ts. The indexer uses this exact code, and so does the on-chain update_score instruction. If the displayed score doesn't match, file a bug.A bot starts with 1,000 USDC bonded and 1,000 USDC of monthly volume. Watch how the score moves.
| Event | Score | Change |
|---|---|---|
| Just bonded, no actions yet | 600 | - |
| First successful swap | 800 | +200 |
| 9 more successful swaps (10 total) | 838 | +38 |
| 90 more successful swaps (100 total) | 848 | +10 |
| One dispute filed | 815 | -33 |
| 50 successful swaps after the dispute (redemption) | 832 | +17 |
| Volume jumps to 5,000 USDC, bond stays at 1,000 | 752 | -80 |
| Top up bond to 5,000 USDC | 852 | +100 |
Numbers rounded for readability. Actual scores are computed to integer precision and clamped between 0 and 1000.
Most of your score gain happens in the first hundred actions. After that the tenure component flattens out. Don't sit on a freshly bonded agent. Run it.
If you're handling 5,000 USDC of volume a month, hold at least 5,000 USDC of bond. The bond ratio component gives you the full 100 points only when bond meets or exceeds volume.
A single dispute can drop your score by 17 to 33 points, depending on how many actions you've logged. That's enough to push you down a credit tier. Don't take actions you can't deliver on.
The redemption clock starts on the next successful action after a dispute. Fifty consecutive successes cuts the penalty in half. Pausing the bot doesn't help. Operating it does.
Add the components: 500 base, 50 tenure, 200 success rate, 100 bond ratio. That's 850. A clean agent with a long history, perfect success rate, and a bond bigger than its monthly volume tops out around 850. The 1000 cap exists for safety, not as a target. If you see 905 or higher, that's likely a demo fixture, not a live agent.
Once your score crosses 700, the boost ladder opens up. Higher score means less of your own USDC locked.