Skip to content

Roles

The orchestrator moves messages and retries. It is not a source of trust. Dropped messages can stall execution; that is acceptable. Substituted messages must fail signature checks.

Renaming MCP servers inside one process does not make them independent.

RoleDoesMust not
Intent AuthorityConfirms the structured request, or mints an intent inside a mandateHand the agent a blank cheque
ProposerCalls prepare, freezes the payload, signs provenanceSend funds, pick its own verifiers
Semantic VerifierDecodes the payload and compares it to the intentHold execution credentials, trust a caption over the bytes
Safety VerifierLimits, simulation, risk, required factsSkip a hard rule because a model said “looks fine”
Execution GateRecomputes hashes, checks roles, claims the actionAccept approved: true as enough
Execution AdapterSubmits the frozen payloadChange material fields after verification
Receipt VerifierMatches observed effects to the requestTreat HTTP 200 or a tx hash as settlement

Assumptions that have to hold:

  • Intent authorization and the trust registry are protected.
  • The agent has no second path to the payment API, wallet key, or chain signer.
  • Required roles are distinct authorized parties.
  • If every required verifier is compromised, or the TEE is, the protocol does not save you.
  • The same bad source fact can pass several checks. Critical facts need independent sources.