Skip to main contentPASS
Read the docs

Permission infrastructure

Capital is becoming autonomous.Permissions need to become programmable.

PASS is the permission layer for autonomous finance — identity, policy and execution infrastructure for onchain capital markets.

Execution pathPermissioned
  1. AgentForms an execution intent
  2. WalletProves control of an account
  3. PASSEvaluates authority before execution
    • Identity
    • Policy
    • Risk
    • Execution
  4. ProtocolCarries out the instruction
  5. CapitalValue moves onchain
A signature proves control of an account. Execution proves the instruction was valid. Neither answers what the actor was permitted to do.

01The shift

Software used to recommend.
Now it can execute.

For most of its history, financial software helped people decide. It ranked options, modelled outcomes and prepared instructions that a person then approved.

  1. 01RecommendSoftware surfaces an option. A person decides.
  2. 02DecideSoftware selects among options against an objective.
  3. A new requirement begins here

    03ExecuteSoftware issues the instruction itself.
  4. 04Move capitalValue changes hands, and the action is final.

Autonomous systems can increasingly do more than prepare an instruction. Given an objective, a set of tools and the ability to sign, software can select an action and issue it without a person reviewing that particular decision.

The change is narrow but consequential. The final step in the sequence is no longer a recommendation someone accepts or rejects. It is an execution, and execution moves capital. The infrastructure question this raises is not whether software can act. It is what a given piece of software is permitted to do.

02The missing layer

An execution path with nothing in it that defines authority

Follow a transaction from an autonomous actor to settlement. Every component in the path does its job correctly. None of them is responsible for the question that matters most.

  1. AgentForms an intent
  2. WalletSigns for an account
  3. ProtocolExecutes the instruction
  4. CapitalValue moves

Unresolved at this point

  • Who is this agent acting for?
  • Which credentials are required?
  • Which assets may it access?
  • Which protocols may it use?
  • How much may it move?
  • What is its daily exposure limit?
  • When must execution stop?
  • Wallets authenticate control.
  • Protocols execute instructions.
  • Neither defines the mandate.

Financial agents need permissions, not just private keys.

03Introducing PASS

PASS evaluates what may happen before capital moves

A person or an institution already knows what an actor should be allowed to do. That intent normally lives in a policy document, a risk committee decision, an operating agreement or an instruction given to an operator. It is written for people, and it is enforced by people.

PASS turns that intent into a form execution infrastructure can evaluate: an explicit statement of which actor may act for which party, over which assets, at which venues, within which limits, subject to which credentials, and for how long.

The result is not advice given to an actor. It is a boundary evaluated independently of it.

  1. 01Autonomous actorAn agent, an execution service or an automated strategy
  2. 02PASSEvaluates the mandate before execution
    • IdentityWho the actor represents
    • CredentialsWhich attestations are required
    • PolicyWhich actions, assets and venues are permitted
    • Risk boundariesHow much may move, and over what period
    • Execution authorizationThe decision returned before the call proceeds
  3. 03ProtocolThe venue that would carry out the instruction
  4. 04Onchain capitalValue that changes hands

04Permission dimensions

Who, what, where, how much, when

A mandate is not a single switch. It is a set of independent constraints, each of which can refuse an execution on its own, and each of which produces a distinct reason when it does.

Who
  • Who is the actor representing?
  • Which credentials must it hold?
  • ACTOR_NOT_AUTHORIZED
  • MISSING_CREDENTIAL
What
  • Which actions are permitted?
  • Which assets are permitted?
  • ACTION_NOT_ALLOWED
  • ASSET_NOT_ALLOWED
Where
  • Which protocols may be used?
  • Which execution venues are approved?
  • ADAPTER_NOT_ALLOWED
How much
  • Maximum single transaction
  • Cumulative exposure over a period
  • Leverage and other risk limits
  • TX_LIMIT_EXCEEDED
  • DAILY_LIMIT_EXCEEDED
When
  • Validity window and expiry
  • Revocation by the granting party
  • Suspension
  • MANDATE_EXPIRED
  • MANDATE_SUSPENDED

A refusal is never general. It names the dimension that produced it.

05Without PASS / With PASS

The same execution path, with and without an evaluated boundary

The difference is not that one path has permissions and the other has none. It is where those permissions live, what they are expressed in terms of, and whether anything in the path is obliged to check them.

Without PASS

  1. Agent
  2. Wallet
  3. Protocol
  4. Capital

Permission model

Private key
Establishes control of an account
API key
Scopes access to one service
Model instructions
Shape what the actor attempts
Application logic
Enforces rules inside one application

Trust the agent.

With PASS

  1. Agent
  2. PASS
  3. Execution

Example mandate

Allowed assets
AAPL, NVDA
Allowed venues
Approved adapters only
Maximum transaction
$2,500
Daily exposure
$10,000
Required credential
STOCK_TOKEN_ELIGIBLE
Bridging
Blocked

Verify every execution.

Each mechanism on the left solves a real problem. A key proves control, an API key scopes a service, instructions shape behaviour and application logic enforces rules where it runs. What none of them produces is a single statement of financial authority that holds across accounts, applications and venues, and that something in the execution path is required to evaluate.

06Preflight

Evaluated before submission, not reported afterwards

A proposed execution is normalized into an intent — an asset, an action, a value and a venue — and evaluated against the governing mandate. The result is a decision, and the decision is what determines whether the call proceeds.

Rules are evaluated in a defined order, and evaluation stops at the first failure. A refusal therefore carries exactly one reason code: the specific constraint that was not satisfied, not a summary of everything that might have been wrong.

Proposed execution
Actor
0x81…29F
Action
BUY
Asset
NVDA
Value
$2,400
Credential requirement
STOCK_TOKEN_ELIGIBLE heldPASS
Asset permission
NVDA in allow setPASS
Venue permission
Approved adapterPASS
Transaction limit
$2,400 of $2,500PASS
Daily exposure
$6,100 of $10,000PASS

AUTHORIZED

Every applicable rule was evaluated and satisfied. The execution proceeds.

An illustrative evaluation. The figures are a worked example of the rules and the order they are applied in, not a reading from a running system.

07Passport

Eligibility, without publishing the evidence

Many financial permissions depend on facts about a party rather than on the party’s identity: whether they are eligible to hold a particular instrument, whether a jurisdictional restriction applies, whether a screening was completed and by whom.

A Passport holds those facts as credentials — stable identifiers attested by an issuer. A mandate can then require a credential without any part of the execution path needing the underlying documentation, and an application can check eligibility without becoming a custodian of personal data.

The architecture supports privacy-preserving credential models and external attestations, and treats the issuer relationship as a first-class part of the design rather than an afterthought.

PASS PassportActive
PASS ID
0x7F…94A
Issuer
External attestation provider
IDENTITY_VERIFIED
Identity verified by an issuer
NON_US_PERSON
Subject is not a US person
EEA_ELIGIBLE
Subject is eligible under EEA rules
AML_CHECKED
Screening completed by an issuer
STOCK_TOKEN_ELIGIBLE
May hold tokenized equities
An illustrative credential set. A credential asserts an eligibility condition; it does not carry the personal data an issuer used to establish it.
Agent mandateMandate active
Actor
0x81…29F
Acting for
Subject account
Allowed assets
  • AAPL
  • NVDA
Allowed actions
  • BUY
  • SELL
Allowed venues
Approved adapters only
Bridging
Blocked
Maximum transaction
$2,500
Daily exposure
$10,000
Required credential
STOCK_TOKEN_ELIGIBLE
Validity
Bounded window, revocable at any time
An illustrative mandate. Every field is an allow set or a bound; anything not named is not permitted.

08Mandate

Authority written so that it can be evaluated

A mandate binds an actor to the party it acts for and states, in financial terms, what that actor may do. It is expressed as allow sets and bounds rather than as prohibitions, so an asset, an action or a venue that is not named is not permitted.

Because it is a record rather than an instruction, it can be amended, suspended, revoked or allowed to expire without touching the actor’s key and without the actor being asked to cooperate.

The agent may decide.
PASS defines the boundary.

09Deterministic enforcement

A limit that is evaluated behaves differently from a limit that is remembered

Both of the constraints below express the same intention. They differ in who evaluates them, and when.

Instruction to an actor

“Don’t spend more than $10,000 today.”

Evaluated by the actor, at the time it reasons, as one input among many. It shapes what the actor attempts. Nothing else in the execution path is aware of it.

Machine-enforceable bound

mandate.limits = {
  perTransaction: 2_500,
  daily: 10_000,
};

Evaluated by the execution path, at the moment the action would occur, against accumulated state the actor does not maintain and cannot report on its own behalf.

Evaluated case

A $1,400 trade, against $9,200 already moved today, would carry cumulative exposure past the daily bound.

BLOCKEDDAILY_LIMIT_EXCEEDED

A financial permission should not depend on the agent remembering the instruction.

This is a statement about where a constraint is evaluated, not a claim that instructions are without value. An instruction is a useful way to direct an actor. It is not a boundary that a counterparty, an operator or an auditor can rely on, because nothing outside the actor is obliged to check it.

10Machine-readable authority

Private keys establish control.
PASS defines authority.

Control

An account can sign.

Control is a cryptographic fact. It is either held or not held, it says nothing about purpose, and it is the same fact whether the signer is a person following a policy or a process that has misread its objective.

Authority

The actor is permitted to perform this action, for this party, under these constraints.

Authority is a financial fact. It is scoped, conditional and revocable, it belongs to the party granting it rather than to the key holding it, and it is the thing an operator, a counterparty or an auditor actually needs to know.

Every system in the execution path can verify control. None of them is positioned to verify authority, because authority is not a property of the key, the transaction or the venue. It is a property of the relationship between the actor and the party it acts for.

11Adapter model

A transaction cannot be trusted to describe itself

If an actor could tell the permission layer what its own transaction was — that these bytes are a $500 trade in AAPL — the check would be decorative. The description and the call would be independent of each other.

  1. Raw callBytes proposed by an actor
  2. Protocol adapterDecodes against a known target
  3. Validated intentWhat is actually being proposed
    • Asset
    • Action
    • Value
    • Venue
  4. PASS policyEvaluated against the mandate
  5. ExecutionProceeds only on AUTHORIZED

Raw calldata is opaque by design. The same bytes mean different things at different targets, token amounts are not values, and a value requires a price. An adapter closes that gap for one protocol: it verifies the target, decodes the call, identifies the asset and computes the value, producing an intent that policy can be evaluated against.

This shifts trust rather than removing it. Adapters become security-relevant components, adapter correctness becomes a property the system depends on, and an adapter that cannot confidently decode a call has to refuse it rather than guess. That refusal is itself a decision, with the reason code INVALID_EXECUTION_CONTEXT.

12Architecture

Authority in, decision out

The map is the whole system. Authority is granted by a party, written as a mandate, exercised by an actor, evaluated by PASS, carried out by a protocol and settled onchain. Six positions, and the layer occupies exactly one of them.

What that position buys is separability. The credential, the mandate, the adapter set and the key are four different objects, and each is changed on its own.

  1. 01User / institutionDefines the intent and grants the authority
  2. 02MandateThat authority, written as a record
  3. 03Agent / executorProposes executions under the mandate
  4. 04PASSDetermines whether a proposed execution is permitted
    • Credential layerResolves which attestations a subject holds
    • Policy engineEvaluates permissions against the mandate
    • Risk rulesApplies limits and accumulated exposure
    • Execution preflightProduces the decision before submission
    • Adapter layerDerives validated intent from a proposed call
  5. 05ProtocolsThe venues that carry out instructions
    • Exchange
    • Lending
    • Derivatives
    • Settlement
  6. 06Onchain assetsWhere value actually sits

13Why now

Five developments that only matter together

None of these is new on its own, and none of them individually creates a permission problem.

  • Tokenized assetsInstruments that carry eligibility conditions
  • Programmable accountsAccounts that execute logic, not only signatures
  • Autonomous actorsSoftware that selects and issues actions
  • Onchain liquidityVenues reachable without an intermediary
  • Real-time settlementFinality measured in seconds
Software-defined actorsParticipants in capital markets whose behaviour is determined by code rather than by an individual acting under a policy.

Separately, none of these needed a permission layer. Arriving in one execution path, they do.

14Ecosystem

Programmable markets need programmable permissions

Environments are emerging in which tokenized financial assets, DeFi mechanisms, programmable accounts and automated execution sit in one place. Robinhood Chain is publicly described as an environment of that kind.

Convergence of that kind raises questions that neither the asset layer nor the execution layer is positioned to answer. Tokenized instruments can carry eligibility conditions. Venues differ in what they are approved for. Exposure needs to be bounded across a whole book rather than one transaction. And the party proposing an action is increasingly a program.

Those are permission questions, and they are the same questions regardless of which chain the assets happen to sit on.

15Developers

Integration is one call and one answer

Integration is a single call placed where an action becomes irreversible. It returns an outcome and a reason, and the caller either proceeds or refuses.

The same shape holds whether the check runs inside an executing contract, in a guard in front of an account, or at an agent’s own execution boundary. What changes is how much of the path is covered by it.

// Evaluated before the action is carried out.
(bool allowed, bytes32 reason) = pass.checkPolicy(
    account,
    target,
    asset,
    action,
    amount
);

if (!allowed) {
    revert PolicyRefused(reason);
}

A decision carries allowed and reason. A refusal names the specific rule that was not satisfied, so a caller can distinguish a missing credential from an exceeded limit without inspecting the mandate.

16Design principles

Constraints the architecture is held to

  1. 01

    Verify at the boundary

    Permissions are checked where an action becomes irreversible, not earlier in a process that can be skipped.

  2. 02

    Explicit over implicit

    Financial authority is stated. It is not inferred from what a key happens to be able to reach.

  3. 03

    Credentials without exposure

    Establishing eligibility should not require personal information to be written onchain.

  4. 04

    Deterministic boundaries

    A limit that matters is evaluated by the execution path rather than held in the memory of the actor it constrains.

  5. 05

    Protocol-neutral

    A permission layer belongs above individual venues, so that authority is not redefined once per protocol.

  6. 06

    Non-custodial by construction

    Deciding what may happen does not require holding the capital it governs, and the architecture is designed so that it never needs to.

The financial system is becoming programmable.Its permissions should be too.

PASS

The permission layer for autonomous finance.