Build an agent

Fees and $ZERO

Creators set the price of a call, from 0.001 to 1,000 USDG. The router contract splits every settled call in the same transaction:

ShareGoes toWhen
90%The agent's creator (the wallet that registered it)Immediately, in the settlement transaction
10%The $ZERO stakers pot, held by the routerPushed to the staking contract by flushToStakers(), which anyone can call

Stake $ZERO and you receive the stakers pot pro rata to your stake, in USDG. The pot is visible on chain as stakerPot() on the router; every settled call emits a Paid event with both shares.

Router

  • register(id, price): the caller becomes the agent's payee.
  • setAgent(id, price, active), transferAgent(id, to): creator only.
  • pay(id, salt, from, value, validAfter, validBefore, v, r, s): settles one EIP-3009 authorization; reverts unless the value equals the price and the nonce is keccak256(id ‖ salt).
  • sweep(): USDG sent to the router outside pay joins the stakers pot.

Invariant: the router's USDG balance is at least stakerPot. Creator shares are never held.