$OPUS is officially live on Robinhood Chain.
0xe91f5987b57311fa4505fc8cc8212c03361fca7c
Opus Protocol is the billing layer for AI agents: on-chain subscriptions, capped allowances, and x402 payments, settled in USDG on Robinhood Chain. Agents subscribe once and every renewal collects itself, with no human in the loop and no ledger anyone has to trust.
Agents can subscribe to other agents.
A specialist agent publishes a plan. An orchestrator subscribes, pays each cycle, and gets the output. The receipt is on-chain.
No invoicing between machines. A plan, a subscription, a ledger both sides can read.
One signature, then it runs.
A subscription binds an agent wallet to a plan. The provider collects a fixed USDG amount every cycle, capped by authorizedAmount. The agent never signs again.
Failed collection pauses it. Either side can cancel.
https://t.co/kYGMAh9Rnd
How Opus Protocol works, in 46 seconds.
A provider publishes a plan on-chain. An agent hits a 402, pays, gets the resource. Subscriptions renew on one signature. Allowances cap spend at the contract.
Every record public on Robinhood Chain.
New commit in opus-contracts.
SubscriptionPaymentFailed now says which check failed: "insufficient balance" or "insufficient allowance".
Before it said "balance or allowance" and left the agent guessing. Now it knows whether to top up or re-approve.
https://t.co/GVCJo8AQNx
New commit in opus-contracts.
createPlanWithMetadata() on OpusPlanCatalog. Publish the plan and its metadata URI in one transaction instead of two.
Same validation as before: URI over MAX_METADATA_URI_LENGTH reverts with MetadataURITooLong().
https://t.co/oJEDZzlLvU
An allowance is a hard ceiling, not a suggestion.
An agent grants a service up to 100 USDG. The service calls deduct(). At 100, deduct() reverts. No override, no admin path, no way to spend 100.01.
Budget enforcement for agents, done by the contract.
https://t.co/LKtgVnSAAy
A plan on Opus Protocol is immutable once published.
Change your pricing and you publish a new plan. Existing subscribers keep the terms they agreed to, enforced by the contract, not by policy.
No surprise price hikes for agents that cannot read email.
New commit in opus-contracts.
OpusCheckout gets refund(paymentId). The payee returns the net amount to the payer; the protocol fee stays with treasury.
A refunded payment fails verifyPayment(), so a proof cannot be reused after the money went back.
https://t.co/ogmEUcEUHe
New commit in opus-contracts.
OpusAllowanceLedger gets release(). A grantee that is done with an allowance can hand it back.
Until now only the granter could end one. Spend history stays, remaining capacity goes to zero, deduct() stops.
https://t.co/Qpk4RO6HgG
New commit in opus-contracts.
Emergency pause on the settlement contracts, via OpenZeppelin Pausable. Owner can halt pay(), subscribe(), collect(), and deduct().
Exit paths stay open while paused: cancel, revoke. Agents are never trapped.
https://t.co/O5AP2WQwcm
An allowance is a hard ceiling, not a suggestion.
An agent grants a service up to 100 USDG. The service calls deduct(). At 100, deduct() reverts. No override, no admin path, no way to spend 100.01.
Budget enforcement for agents, done by the contract.
New commit in opus-contracts.
OpusSubscriptionEngine gets canCollect(planId, account), a public view. Collectors can check authorization before submitting a batch instead of learning on revert.
Same check now shared by collect() and collectBatch().
https://t.co/cGBb9auSMI
New commit in opus-contracts.
payBatch() on OpusCheckout and collectBatch() on OpusSubscriptionEngine now revert with EmptyBatch() on an empty list.
Before, an empty batch settled nothing, cost gas, and returned success. Now it fails loudly.
https://t.co/MsH5JTVOMY
@opusprotocol/sdk, 24 hours in: 57 downloads!
Every one of them is a developer who read the docs and ran npm install.
If you are one of them, Opus Protocol is always open for feedback. Let us know what we can work on!
https://t.co/cbPapGanZY
New commit in opus-contracts.
Paged reads on the Plan Catalog computed offset + limit to find the end of a page. Pass type(uint256).max as "give me everything" and the add overflowed and reverted.
The end now clamps to what remains. Test added.
https://t.co/a8fjFHT6wW
$OPUS is officially live on Robinhood Chain.
0xe91f5987b57311fa4505fc8cc8212c03361fca7c
Opus Protocol is the billing layer for AI agents: on-chain subscriptions, capped allowances, and x402 payments, settled in USDG on Robinhood Chain. Agents subscribe once and every renewal collects itself, with no human in the loop and no ledger anyone has to trust.
Subscription billing, built for agents.
Plans published on-chain. Subscriptions that renew themselves. Allowances with a cap the contract enforces. x402 and MPP for one-time payments.
One import. Settled in USDG on Robinhood Chain.
"npm install @opusprotocol/sdk"