Case study·Humanos × Numo·cs_numo · v5 · 2026-04-22

Numo’s agents move capital across treasury, exchanges, custodians, and rails.
Humanos verifies every action before execution.

Numo runs autonomous strategies that reallocate capital continuously across operating accounts, exchanges, custodians, and payment rails. Humanos sits between the agent’s decision and the actual transaction — identity, scope, amount, validity — deterministic yes or no, before any capital moves.

Domain
Automated capital allocationAgentic finance
Surface area
Treasury · Exchanges · Custodians · RailsInternal & external systems
Integration
humanos.verify()One call · before any movement
Site
usenumo.com ↗Capital allocation platform
§ 01 · About the customer

Numo is a platform for automated capital allocation, where agents move capital across systems.

Strategies run autonomously. Capital is reallocated continuously across treasury, exchanges, custodians, and payment rails.

Humanos sits between the agent’s decision and the actual transaction, and checks every action before it goes through — identity, scope, amount, validity.

Numo
Integrated
Domain
Automated capital allocation
Surface area
Treasury · Exchanges · Custodians · Rails
Runtime
numo.strategies.v2
Integration
humanos.verify() · one call
Anchored
2026-04-22 · v5
§ 02 · Problem

Capital moves on assumptions,
not authorization.

Agents now move money. Strategies run on their own. Execution spans treasury, exchanges, custodians, and payment rails. The rules that govern what is allowed live in code, scattered across systems, slowly drifting out of sync — and never actually checked at the moment an action happens.

What’s happening

Agents act, capital moves, no one verifies.

Decisions are defined in one place. Agents act in another. Execution happens across multiple systems. Approvals — when they exist — are captured elsewhere. Nothing answers, in real time, whether a specific action is actually allowed.

decision·execution·monitoringfragmented
What it costs

Drift. Replication. Unprovable trust.

Rules duplicated per venue. Policy changes require code deploys. Auditors reconstruct trails after the fact. The firm can show what agents did — not that any given action was allowed.

no shared answer·“what is allowed right now”
Capital moves on assumptions. Not on verified authorization.
§ 02 · close
§ 03 · Solution

One verification step
between decision and execution.

Before any capital movement, Numo’s agent calls humanos.verify(). Identity, scope, amount, and validity are checked against a signed mandate in real time. Authorized actions execute. Missing authorization is collected at runtime — not silently failed.

verification.capture · before any capital movement
2026-04-22 09:14:02.187 UTC
Action
reallocate_capital
strategy: delta_neutral · numo.exec
Movement
€ 50,000.00
From: operating treasury
To: custodian.fireblocks€ 30,000.00
To: venue.binance (USDC)€ 20,000.00
Total€ 50,000.00
x-humanos-mandate · 0x7B2C…91d4
Initiated by · Numo strategy agent
on behalf of: Treasury Lead, Atlas Capital
humanos.verify() · live capture
74 ms
identityprincipal verified
9 ms
scopedelta_neutral · reallocate
18 ms
counterpartyapproved venue list
31 ms
amountwithin € 250,000 daily ceiling
52 ms
validitymandate active until 2026-05-22
63 ms
Authorized · proof emitted
proof:0x7B2C…91d4 · attached to execution
✓ Authorized

Execute.

Within mandate, within constraints, within validity. The agent proceeds. A Proof is generated — portable, verifiable by any party.

✕ Not authorized

Recover — then continue.

Humanos requests approval instantly (SMS, API), collects KYC or identity verification if required, updates the mandate, and resumes execution once authorization is valid.

The system doesn’t fail. It recovers authorization at runtime.
§ 06 · Implementation

How Numo implemented it.

Five stages in chronological order. The animation on the right walks through Numo’s €50,000 capital reallocation — signed by the Treasury Lead, verified before any movement, executed across custodian.fireblocks and venue.binance.

01
§ 01 · Issue

Define mandate.

Treasury lead authorizes scope, strategy, ceiling, and validity. Humanos issues a machine-verifiable mandate — signed once, reusable across every system that calls verify().

ApproverTreasury Lead · Atlas Capital
Scopedelta_neutral · reallocate
Ceiling€ 250,000.00 / day
Valid until2026-05-22
02
§ 02 · Prepare

Agent prepares action.

A strategy decides to reallocate capital. The Numo runtime assembles the action with subject, amount, and runtime context. The agent attaches the mandate via x-humanos-mandate.

Agentnumo.strategy.agent
Strategydelta_neutral
Destinationsfireblocks · binance
Amount€ 50,000.00
03
§ 03 · Verify

Verify before execution.

Before any capital movement, the agent calls humanos.verify(). Constraints, validity, and revocation are checked in 74 ms. Deterministic yes / no.

Callernumo.exec.runtime
Identityverified · 9 ms
Amount€ 50,000 ≤ € 250,000 · 52 ms
Latency74 ms total
04
§ 04 · Execute

Execute — or recover.

Authorized → execution proceeds across rails. Not authorized → Humanos doesn’t fail. It collects approval or KYC in real time (SMS, API), updates the mandate, and resumes once authorization is valid.

Authorized€ 50,000.00 · executed
Blocked€ 320,000.00 · out_of_scope
Recoverstep-up SMS / KYC · resumes
05
§ 05 · Prove

Audit proof.

Every action emits a cryptographic Proof — attached to the execution, portable forever. Auditors, custodians, and counterparties verify the Proof directly against Humanos; nothing reconstructs trails from internal logs.

Proof IDproof:0x7B2C…91d4
Attachedexecution.receipt
VerifiersAuditor · Custodian · Partner
Resultindependently verifiable · forever
Live · humanos.verify() · Numo × reallocate_capital
§ 01 · Issue
01 · Issue · mandate signed by Treasury Lead
mandatesigned
subject: "numo.strategy.agent",
principal: "treasury.lead@atlas.capital",
action: "reallocate_capital",
scope: ["delta_neutral", "reallocate"],
counterparty: approved_venue_list,
amount_max: "€ 250,000.00 / day",
valid_until: "2026-05-22"
02·03·04 · Prepare → Verify → Settle
  1. A1Reallocate € 30,000 → custodian.fireblocksauthorizedmissingrequesting…approvedout_of_scope
    strategy: delta_neutral · within ceiling
  2. A2Allocate € 20,000 → venue.binance (USDC)authorizedmissingrequesting…approvedout_of_scope
    approved venue · stake / quote
  3. A3Sweep € 320,000 → yield_vault.alphaauthorizedmissingrequesting…approvedout_of_scope
    exceeds € 250,000 daily ceiling
  4. A4Onboard new counterparty: gamma.exchangeauthorizedmissingrequesting…approvedout_of_scope
    step-up KYC · resolves · resumes
verify() — called inline before any capital movement
await humanos.verify({ subject, action, amount, counterparty, mandate }) // 74 ms · deterministic
executed · € 50,000.00 · fireblocks + binance
0x7B2C…91d4
05 · Prove · cryptographic receipt, attached to execution
proof.jsonsigned
{
  "who_approved": "Treasury Lead · Atlas Capital",
  "counterparty": "fireblocks + binance",
  "action": "reallocate_capital",
  "amount": "€ 50,000.00",
  "scope": ["delta_neutral", "reallocate"],
  "mandate": "0x7B2C…91d4",
  "validity": "≤ 2026-05-22",
  "timestamp": "2026-04-22T09:14:02.187Z",
  "signature": "0x7B2C…91d4"
}
AuditorProcessorAcquirerverify(proof)true
✓ proof attached · independently verifiable · forever
§ 04 · Outcome

What you get
the moment it’s wired in.

01 · Verify

Every action verified before execution.

Nothing moves on assumption. The verify call is non-optional and inline — before any capital movement, not after the fact.

02 · Enforce

One rule set across all systems.

Internal and external systems read from the same authorization source. No fragmentation per venue, custodian, or rail.

03 · Eliminate

Manual approvals are gone.

Standing mandates replace four-person chains. Humans sign once — not every time.

04 · Audit

Auditability without building logs.

Every action produces a cryptographic Proof. Auditors look it up directly, instead of piecing together logs after the fact.

05 · Update

Change rules without code changes.

Issue a new mandate. Revoke the old one. Effective immediately, everywhere a system verifies.

06 · Recover

Recover missing authorization in real time.

Approval, KYC, or identity verification is collected the moment it’s needed. Execution resumes once authorization is valid.

Agents can act autonomously — within provable, enforceable boundaries.
§ 05 · System flow

Agent → verify() →
execute → prove.

Live · 35s loop · verify → recover → continue → prove·humanos.verify()
Agentprepares actionverify()humanos.verify(...)82ms · deterministicMandatesubject · scope · limitsAllowwithin scopeNot authrecoverUserapprove · KYC · SMSExecutevenue / railProofreceipt · anchoredTreasuryExchangeCustodian00 · IDLE01 · Agent prepares02 · verify() called03 · Out of scope04 · Request approval05 · Mandate updated06 · Re-verify · auth07 · Execute08 · Proof emitted
§ 07 · Build vs Humanos

Authorization doesn’t scale
as an internal system.

Build it yourself

Internal authorization

With Humanos

Shared authorization layer

Rules fragment across systems and venues.
Mandates are shared across every system that calls verify().
Authorization is coupled to your codebase.
Rules are externalized, versioned, and revocable.
Auditability requires reconstructing logs after the fact.
Proof is generated at execution time. Auditors verify, not reconstruct.
No external party can verify your trust claims.
Counterparties verify Proofs independently — same standard, same primitives.
Every new integration restarts the work.
One verify() call covers every venue, internal or external.
Rule changes require code, deploys, and coordination.
Issue a new mandate, revoke the old one. Effective in real time.
§ 08 · Network effect

Authorization becomes a shared primitive — not something rebuilt per system.

Humanos
verify()
Numo agentcaller
Treasuryoperating accounts
Exchangevenue
Custodianfireblocks
Bank railSEPA · ACH

Mandates work across systems.

Issue once. Verify anywhere — internal services, custodians, exchanges, rails.

Counterparties verify independently.

Auditors and partners check Proofs without trusting your logs.

Integrations reuse the same standard.

No new logic per venue. The integration is the verify() call.

Each participant strengthens the standard.

The more systems verify against Humanos, the more valuable a Proof becomes.

§ 09 · Use cases

Anywhere agents move capital.

01

Treasury

Sweep, rebalance, and allocate liquidity across operating accounts and yield venues.

Verify before execution
transferrebalancesweep
02

Crypto / DeFi

Allocate capital across exchanges, vaults, and on-chain protocols on autonomous schedules.

Verify before execution
depositswapstake
03

Trading systems

Run strategies across venues, with strict limits set for each venue, each asset, and each time window.

Verify before execution
orderhedgeclose
04

Market makers

Coordinate inventory and quote risk across multiple environments and counterparties.

Verify before execution
quotemove inventorysettle
§ 10 · Model

Issue → Verify → Collect → Prove.

I
01 · Issue

Mandate.

Human authorizes scope. Humanos issues a machine-verifiable mandate, reusable across every system that verifies.

V
02 · Verify

Check.

Any external system runs humanos.verify(). Deterministic yes / no.

C
03 · Collect

Approval.

Out of scope? Request step-up authorization from the human principal in real time — API, SMS, or email.

P
04 · Prove

Receipt.

Cryptographic Proof per action. Auditable forever. Verifiable by anyone.

§ 11 · Category definition

Humanos operates at the moment an agent decides to move money.

At that moment, authorization must be verified, the decision must be deterministic, and the outcome must be provable. Everything else follows.

Verified

Authorization is checked at execution.

Never assumed. Never after the fact.

Deterministic

Allow, block, or request approval.

Nothing in between. Deterministic yes / no.

Provable

Every action emits a cryptographic receipt.

Anyone can verify it. Forever.

Agents assume permission.
Agents verify it.