Skip to content

Curriculum · The identity layer

Identity with flashyID

4 lessons · For: Builders wiring identity and delegated authority for an AAO's agents

Every claim in an AAO — who did this, under whose authority, may this agent do that — resolves through identity. flashyID provides it: standard OpenID Connect for authentication, and a grant kernel (@flashyid/sdk) for the harder problem of letting a human delegate part of their authority to an agent without handing over all of it.

This course is conceptual rather than a full integration manual — the exact endpoints live in the flashyID docs — but the concepts are what keep a delegated agent safe, and getting them wrong is how an agent ends up able to do more than anyone authorised.

Four lessons.

Lessons

01

Authentication, then delegated authority

You should be able to: Separate proving who an agent is from what it is allowed to do.

Identity has two halves. Authentication answers who a party is — flashyID is an OpenID Connect provider, so an agent or a human proves identity the standard way, and anything already speaking OIDC works with it. That is the solved, standard half.

The interesting half is authority: what an authenticated agent is allowed to do on behalf of a human. This is where a grant kernel comes in — a system for issuing an agent a bounded slice of a human's authority as a grant it can present and others can verify. An agent acts for somebody, and the grant is how "acts for" becomes a checkable fact rather than an assertion.

Keeping these separate is the first discipline. An agent can be perfectly authenticated and hold no authority to do a given thing; conflating the two is how systems accidentally let identity imply permission. In an AAO, who you are and what you may do are always answered separately.

Source: Flashy Academy — Building a Mesh Agent

02

Delegation is attenuation, never inheritance

You should be able to: State the rule that a grant can only ever narrow authority.

Here is the rule the whole layer is built on: delegation is attenuation, never inheritance. A grant may only ever carry a subset of the granter's scopes. If a change could let a child hold authority its parent lacks, it is wrong — full stop. Authority only ever narrows as it is delegated, never widens.

This is what makes an agent workforce safe to delegate to. When a human grants an agent authority, and that agent sub-delegates to another, each step can only remove scopes, never add them. There is no path by which an agent three hops down holds a power the original human never had, because every hop is a strict narrowing.

It sounds obvious and it is constantly violated in systems that treat delegation as "copy the parent's permissions." Attenuation is the opposite default: start from the parent's scopes and take away. An AAO that gets this right can hand agents real authority without the fear that it compounds.

Source: Flashy Academy — Directing Agents Well

03

Enforcement before minting

You should be able to: Explain why the check must exist before the authority is issued.

A grant kernel exposes a gate — an allow / deny / escalate decision on whether a given action is within a grant. The rule the estate insists on: never ship a way to mint authority ahead of the thing that enforces it. "Identity that nothing checks is theatre." If you can issue a grant but nothing evaluates it at the point of action, you have issued a promise nobody keeps.

So the order is fixed: the enforcement point — the check that reads a grant and decides allow, deny, or escalate to a human — exists first, and only then do you mint grants against it. An escalate outcome is the delegation-layer version of the AAO's fifth question: some actions are within scope to request but require a human to consent before they proceed.

For an AAO this means authority is never just declared. Every grant meets a gate at the moment of action, and the gate is what makes the delegation real. Wiring the enforcement first is not extra caution; it is the difference between authority and theatre.

Source: Flashy Academy — What Is an AAO

04

Assertions bind subject to holder

You should be able to: Explain why the whole chain, not just a signature, must be verified.

The last concept is what stops a valid grant being misused: an assertion binds the subject to the holder. Verifying a delegated action means verifying the chain — that this holder is entitled to present this grant for this subject — not merely that the token's signature is valid. A correctly-signed grant presented by the wrong party is a forgery a signature check alone would wave through.

This is why an AAO verifies chains, not signatures. Every step from the accountable human down to the acting agent has to link: each grant attenuated from the last, each holder the intended one, the subject bound throughout. A break anywhere breaks the authority, no matter how valid each individual piece looks.

Together these four ideas — authenticate then authorise, attenuate never inherit, enforce before minting, verify the chain — are what let an AAO give agents real, bounded authority. They are the identity foundation the rest of the organization's trust rests on, which is why identity is the first spoke you wire.

Source: Flashy Academy — The Verifiable Record

Frequently asked

What is flashyID?

flashyID is the estate's identity layer: an OpenID Connect provider for authentication plus a grant kernel (@flashyid/sdk) for delegated authority. It is how an AAO's agents get an identity and how a human delegates a bounded slice of their authority to an agent as a verifiable grant.

What does "delegation is attenuation" mean?

A grant can only ever carry a subset of the granter's authority — delegation narrows, never widens. If any change could let a delegated agent hold a power its granter lacked, it is wrong. That rule is what makes it safe to hand agents real authority: it can never compound as it is passed down.

Why verify the chain instead of just the signature?

Because a correctly-signed grant presented by the wrong party is a forgery a signature check alone would accept. An assertion binds the subject to the holder, so a delegated action is verified by checking the whole chain — each grant attenuated from the last, each holder the intended one — not just that the token is signed.

Keep going