Skip to content
All briefs

Daily intelligence brief

Algorand Foundation's new AC2 protocol separates human approval from credential custody, giving agents signed authority for a specific action without placing the private key in their runtime.

Report date
Aug 27, 2026
Status
published

Give the Agent Authorization, Not the Key

Agent approval systems often collapse two separate questions: who authorized this action, and what credential lets the system perform it?

Algorand Foundation's new Agentic Communication & Control Protocol, or AC2, makes that separation explicit. An agent prepares a signing request. A person reviews it in a wallet or application that retains the private key. The agent receives a signature for the requested payload rather than possession of the credential itself.

The protocol is early and its strongest claims are still design claims, not independent security results. But its shape matters. It treats human approval as a portable cryptographic artifact and credential custody as a separate control plane.

Approval should produce evidence, not just a message

Most human-in-the-loop systems record an approval as application state: a button changed status, a chat reply said yes or a workflow resumed after a callback. That can be useful operational evidence, but it may not prove which person approved the exact payload that was later executed.

AC2 proposes a narrower contract. The agent sends a structured signing request containing the operation and the data to be signed. The controller reviews the request and returns a digital signature. The protocol's draft specification requires agents to request signatures rather than access a controller's private keys, and its examples cover payments, signed code commits and documents.

The launch implementation combines DIDComm-compatible message formats, passkey authentication through WebAuthn/FIDO2 and an encrypted WebRTC DataChannel. A signaling service establishes the initial connection, but application messages are intended to travel directly between controller and agent after the handshake.

This produces a record that can be checked independently of the model's explanation. A verifier can ask whether a known key signed this exact payload. The answer does not depend on whether the agent accurately remembers the conversation that preceded it.

The agent should carry proof of authority for the action, not the credential that creates authority.

Sources: Algorand Foundation's AC2 launch (opens in a new tab) and the draft AC2 specification (opens in a new tab).

Credential isolation changes the compromise boundary

The more important architectural move is where the key does not go.

If an agent runtime holds an API token or private key, any compromise of that runtime may inherit the credential's full power and lifetime. Adding an approval step inside the same environment does not remove that exposure. The process that asks for permission can still be the process that possesses the key.

AC2 instead keeps signing material with the controller. The agent receives the resulting signature, scoped by the payload the user approved. A compromised runtime may still misuse any valid signature it receives, misrepresent a request to the user or exploit an overly broad payload. It should not automatically obtain the underlying private key merely because the agent needs to execute a signed operation.

That distinction is useful beyond wallets. The same pattern can mediate a deployment, an API request, a client communication or any other action for which a separate signer can authorize a concrete payload. It resembles capability-based control: give the worker the smallest artifact needed for the next effect, not the reusable secret from which many effects can be created.

A signature proves less than an approval interface suggests

Cryptographic evidence is precise, but its meaning is narrow.

A valid signature can establish that a key signed a particular byte sequence. It does not establish that the person understood the request, that the wallet displayed the same semantics as the encoded payload, that the request complied with policy or that the resulting action was safe. Those properties depend on canonical encoding, trustworthy presentation, principal mapping, policy evaluation and execution-time verification.

The controller therefore needs more than an approve button. It needs an intelligible description of the requested effect, the exact target and parameters, any expiry or scope, and a stable binding between what is displayed and what is signed. The executor must then verify that the signature authorizes the action it is about to perform—not a transformed, replayed or adjacent action.

Receipts also remain necessary. A signed request records intent before execution. A completion record should bind that intent to the actual effect, including the resource changed, the result, the time and any material deviation. Authorization and execution evidence answer different questions.

The safe default is deliberately interruptive

The current AC2 version asks the user to sign each operation. Algorand Foundation describes bounded delegation as a future iteration: a user would sign constraints once, and the agent could operate inside them without returning for every action.

That roadmap exposes the central governance tradeoff. Per-action approval has a clear authority boundary but can create fatigue and bottlenecks. Delegation improves autonomy but introduces policy compilation, expiry, revocation, budget accounting and ambiguity at the edge of a grant.

The right next step is not a generic permission to proceed. A delegation should identify the principal, agent, allowed action classes, targets, limits, duration, revocation state and evidence required at execution. It should fail closed when the current request cannot be shown to fit the grant.

Until that model exists and is validated, the interruptive default is an honest representation of the protocol's maturity. It solves a smaller problem: move a signature request across an authenticated channel while keeping the signing key outside the agent.

Build the authorization boundary around the signed object

AC2 suggests four practical requirements for governed agent systems.

First, separate intent, authorization and execution. The agent may propose an action, but a distinct principal or policy engine grants authority, and the executor verifies that grant immediately before the effect.

Second, keep credentials out of general-purpose agent runtimes wherever possible. Replace ambient reusable secrets with short-lived, operation-bound capabilities or signatures.

Third, make the signed payload reviewable and deterministic. A human-readable screen and the machine-executed bytes must describe the same action. Version the schema, canonicalize the encoding and reject unknown or omitted fields.

Fourth, preserve both sides of the transition. Store the request, signer identity, signed payload, signature, execution result and any rejection or expiry. Do not store private keys or treat a prior approval as authority for a later request.

The protocol does not make an agent trustworthy. It makes one part of the trust boundary more explicit: the agent can ask for authority without becoming the custodian of the authority-producing key.

Sources and limitations

The evidence is first-party launch material, a draft specification and an early reference implementation. It is not an independent security audit, interoperability test or production-adoption study. The specification marks conformance and terminology as incomplete, and its security model assumes a semi-trusted agent and a controller who reviews every signing operation. Although the launch describes AC2 as open, the public repository did not expose a detected software license when verified, so reuse rights for the implementation should be confirmed before adoption.

The launch post's compromised-runtime story is presented without enough public evidence to verify it as an incident, so it is not used here as a factual case study. Claims that the protocol is blockchain-agnostic, lightweight or compatible with any agent platform remain vendor claims pending independent implementations and tests.

AC2 keeps private keys outside the agent by design, but the wallet, controller device, signaling path, identity binding, request presentation, signature format, executor and agent plugin remain security-sensitive surfaces. A signature proves control of a key over a payload; it does not by itself prove informed consent, policy compliance, semantic correctness or safe execution. The current release requires per-signature approval, while bounded delegation is described as future work.

Machine-readable evidence layer

Linked Signal records

Factual reporting, source status, limitations, industry impact, and Keelbase analysis remain separately represented.

KB-SIGNAL-20260827-001Confirmed

AC2 separates passkey-signed agent authorization from credential custody

Impact: HighConfidence: Medium

Factual summary

Algorand Foundation launched AC2, an open draft protocol and reference implementation in which an agent sends a structured signing request over an authenticated peer-to-peer channel, a controller reviews and signs it with a retained private key, and the agent receives the resulting signature rather than the credential itself.

Domain impact

The protocol gives agent platforms a concrete pattern for producing independently verifiable human-authorization evidence while reducing reusable credential exposure inside general-purpose agent runtimes.

Keelbase analysis

Governed execution should separate the action proposed by an agent, the authority granted by a principal and the credential that creates proof of that authority. A signature is useful only when the reviewed display, signed bytes and executed effect are deterministically bound and followed by an execution receipt.

Source classification

Primary Official

Limitations

  • The evidence is first-party launch material, a draft specification and an early reference implementation rather than an independent security audit or production-adoption study.
  • The specification labels itself Draft, expects changes and leaves conformance and terminology sections incomplete.
  • Although the launch describes AC2 as open, the public repository did not expose a detected software license when verified, so implementation reuse rights require confirmation.
  • The specified security model assumes a semi-trusted agent and a controller who reviews all signing operations; it does not establish safety against deceptive request presentation or a compromised controller interface.
  • A valid signature proves control of a key over a payload, not informed consent, policy compliance, semantic correctness or safe execution.
  • The wallet, controller device, identity binding, signaling infrastructure, request encoder, executor and agent plugin remain security-sensitive surfaces even when the private key stays outside the agent runtime.
  • The current version prompts for every signature; bounded delegation is described as future work and has not been evaluated here.
  • Claims of blockchain agnosticism, lightweight integration and broad platform compatibility are official project claims without independent interoperability evidence.
  • The launch post's compromised-runtime anecdote is not sufficiently documented to treat as a verified incident and is excluded from the factual signal summary.