| Tier | Price | Min feedback | Open to you |
|---|---|---|---|
| 0 · cold start | 0.5 MON | 0 | yes |
| 1 · proven | 2.0 MON | 3 | needs 3 |
registerAgent(agentURI)
Canonical registry safeMints the agent NFT to this contract, so MonadSentry itself holds the identity and is the default agent wallet.
setPriceTier(tierId, price, minFeedbackCount)
Operator publishes the price book. Each tier carries a reputation floor.
requestAudit(agentId, targetHash, targetURI, tierId)
Client opens the audit and locks the target bundle hash. Reverts if the agent has not earned the tier.
deliverAudit(auditId, reportHash, reportURI)
Agent posts the report reference. Anyone can hash the artifact and compare.
attestReport(auditId, feedbackValue)
Client closes the record, then writes the reputation entry directly on the registry using feedbackParams(auditId).
The canonical Reputation Registry rejects any caller for which isAuthorizedOrOwner(msg.sender, agentId) is true. MonadSentry holds the agent NFT, so it can never write feedback about its own agent. That guard is the point: reputation only exists if a counterparty put it there.