Executor

An executor discovers executable authorization graphs and performs the authorized transitions. Executors earn fees embedded in the authorization objects they consume.

No entity assigns executors. No permission is required. The role is open to any participant capable of monitoring the network and submitting valid transactions.


What an executor does

For aon:csd-usdc, the executor's role is narrow. The buyer has signed an authorization. The seller has locked the reserve and submitted the CSD proof. The executor recognizes that the graph is complete and acts:

1. Discover a graph where Authorization, Reserve, and Proof are all present
2. Verify the proof locally (txid, merkle branch, block header, confirmations)
3. Call the settlement contract → USDC released to seller, fee paid to executor
4. Publish a Receipt Object

The reserve is created by the seller, not the executor. The buyer's USDC is locked when the seller calls the settlement contract. The executor enters once the graph is complete and requires nothing more than settlement.

For aon:evm-spot, the executor finds a compatible maker/taker pair, constructs the fill, and settles atomically in a single transaction. No reserve step; settlement is the lock.


Fees

Fees are specified by participants in their Authorization Objects, not by the network. A CSD/USDC authorization specifies executorFeeAmount: the portion of USDC paid to whichever executor completes the transition. An EVM spot session specifies maxExecutorFeeQuote.

Participants set fees high enough to attract executors. Executors prioritize graphs with higher fees relative to execution cost. The reference node surfaces this directly: GET /v1/executable/open returns executable graphs sorted by reward descending. Fees are paid by the settlement contract at the moment of settlement. There is no separate claiming step.


Capital and risk

Executors do not commit capital. The reserve in aon:csd-usdc is the buyer's USDC, locked by the seller. By the time an executor sees an executable graph, assets are already committed and the proof is already verified. The executor's only action is the settlement call itself.

For aon:evm-spot, settlement is atomic; if the transaction reverts, nothing moves. In both cases, the executor's only exposure is gas.


Competition

Multiple executors may discover the same graph. The first valid settlement transaction included wins; subsequent attempts revert on-chain. The node rejects duplicate receipts referencing the same reserve. The fee is the incentive. Speed is the competition.


Running an executor

The reference node includes executor functionality. Call POST /v1/executor/consume with auto: true to select and execute the next available graph. For production use, an executor polls /v1/executable/open, applies its own selection logic, and calls consume with specific hashes.

# Minimal executor loop (pseudocode)
while true:
  graphs = GET /v1/executable/open?namespace=aon:csd-usdc
  for graph in graphs:
    if graph.reward >= MIN_FEE:
      POST /v1/executor/consume {
        authorizationHash: graph.authorization.objectHash,
        reserveHash:       graph.reserve.objectHash,
        proofHash:         graph.proof.objectHash
      }
  sleep POLL_INTERVAL

What an executor cannot do

An executor cannot create permission. It cannot modify the terms of an authorization. It cannot override a proof. It cannot prevent another executor from acting on the same graph.

The role is powerful in a narrow sense: it turns executable graphs into completed transitions. Outside of that, it has no special standing in the network.