trust, grown from a track record
Reputation.
Rooted in repayment.
Unsecured USDG credit for autonomous agents. Sponsors put capital behind conviction. Every repayment grows a record anyone can verify.
ERC-8004 identities · On-chain credit history · Open protocol
$ help
commands: score <id> · status <id> · borrow <id> <usd> · repay <id> · vouch <id> <usd> · default <id> · replay · clear
#11 pine took loan #93, due 2026-10-09
19 Sept 2026, 19:31 UTC · block 486 · 0x5d72…e810
#6 root settled loan #59 + $0.03 fee
19 Sept 2026, 19:28 UTC · block 485 · 0xc301…b52f
#21 moss took loan #92, due 2026-10-12
19 Sept 2026, 19:26 UTC · block 484 · 0x0cb8…18f0
Model
One pool of USDG. Every agent has a capacity, most of it lent by a sponsor. What a sponsor lends out, it can lose. That is the trust mechanism.
capacity(a) = stake + earned + delegatedIn
available(a) = capacity − principalOut − delegatedOut
borrow(a, P) → require minLoan ≤ P ≤ available(a)
repay(a) → fee distributed · earned credit grows
lender
Supplies USDG and earns 60% of every fee.
sponsor
Stakes capital and vouches for agents.
agent
Borrows against a verifiable identity.
reserve
Absorbs loss after sponsor capital.
Loan lifecycle
Four transitions. The final transition is what gives a GROWX score its meaning.
Score
Six terms over the on-chain record, normalized from 0 to 1000. Capital held for real time and returned matters most.
score(r) = defaulted ? 0 :
min(400, dollarDays / $10)
+ min(200, 20 · qualifiedRepaid)
+ min(150, delegatedIn / $5)
+ min(150, 2 · daysEnrolled)
+ min(100, 50 · recourseHonored)
− 75 · childrenDefaulted
Invariants
Checked on every state transition. These are intended properties, not a guarantee of safety; experimental capital remains at risk.
badDebt ≤ totalEarned ≤ reserve
stateful fuzz · 256 × 64
balance = liquidity + stake + reserve
stateful fuzz · 256 × 64
principalOut + delegatedOut ≤ capacity
stateful fuzz · 256 × 64
Parameters
Read from getParams() on the deployed pool. Owner-adjustable within bounds; every change emits ParamsUpdated.
| param | value | meaning |
|---|---|---|
| minLoan / maxLoan | $5 / $500 | loan size bounds |
| minTerm / maxTerm | 1 d / 30 d | duration bounds |
| grace | 3 d | before default may be marked |
| feeBps | 1% / 30 d | flat fee, pro rata |
| growthBps | 50% | repaid principal becomes capacity |
| maxEarned | $250 | earned credit cap per agent |
$GROWX is a sponsor
Creator fees strengthen the system by rule: half funds the first-loss reserve, half becomes sponsor stake for new autonomous agents.
Pons escrow ── fees ──▶ treasury.sweep()
├── 50% → fundReserve()
└── 50% → addStake(id)
firstLine(agent) → vouch $5
raise(agent) → clean record → line $50
token address · 0x17ff205030b2358d2bf4538d6a4203d8f54df5df
Interface
Everything an agent, sponsor, or lender can do. The score is a single verifiable view call.
# read an agent score directly from the deployed contract
cast call 0xf8d8B64E76A7830e860EEE4a7f8bc8be596C5bBE
"score(uint256)(uint256)" 1
View deployed contractYour agent
Inspect a public credit identity from this protocol snapshot.
Try demo agents 4, 8, or 14.
Live contract
Connect MetaMask to Robinhood Chain (id 4663) and settle real borrow, repay, vouch and default transactions against the deployed GrowxProtocol contract.
