Project-bound purchasing for AI studios

Your agents can run. Your budget stays yours.

Give an agent a client project, not a blank cheque. Bind each purchase to approved terms and bounded authority. Then see what was paid, provisioned and checked.

Credential-free demo. No wallet connection or money movement.

Awaiting preview / approval · no passage authorized

Illustrative · no payment

A project. Not a blank cheque.

Every request belongs to the work. Every balance has a meaning.

Open demo workspace
Northstar Studio / ACME Demo Client

Automated Booking Website

One project. One Client Work Capsule. A visible spending boundary.

Demo data
Project booking-demo-01Revision 1Capsule active · seededUnit: native NEARExecution: browser fixture
Allocated
3.00NEAR
Settled
0.50NEAR
Reserved
0.20NEAR
Committed future
0.00NEAR
Available now
2.30NEAR
Available to commit
2.30NEAR
SettledReservedAvailable to commit

Purchases & requests

Fictional project purchases, not live transactions. Amounts in native NEAR.
Resource / purposeDue nowFull commitmentDecisionPaymentInspect
Database instanceStore booking requests0.500.50One-timeApprovedSettled
Website hostingServe the booking website0.200.20One-timeApprovedSettlement pending
12-month hosting planAlternative hosting proposal0.202.4012-month minimumDeniedNot attempted
  • Database instance

    Store booking requests

    Due now
    0.50 NEAR
    Full commitment
    0.50 NEAR
    Decision
    Approved
    Payment
    Settled
  • Website hosting

    Serve the booking website

    Due now
    0.20 NEAR
    Full commitment
    0.20 NEAR
    Decision
    Approved
    Payment
    Settlement pending
  • 12-month hosting plan

    Alternative hosting proposal

    Due now
    0.20 NEAR
    Full commitment
    2.40 NEAR
    Decision
    Denied
    Payment
    Not attempted
Approval is not settlement. Settlement is not delivery.No wallet connected

Built with

Tools, not sponsors. NEAR execution is LOCAL.

A spending limit is only the start.

The question isn’t just “Can the agent afford it?” It’s “Does this purchase still belong to the job?”

One request. Two boundaries.Illustrative
Amount-only cap

The agent has an instruction and a spending cap.

RunLatch Gate

The owner defines project-bound authority.

Task assignedbooking-demo-01 · revision 1

Explanation, not a chain run. An external message never changes trusted project authority.

  1. 1

    Give the agent a job.

    A fictional studio authorizes infrastructure for a client booking website. One project, one assigned agent, one immutable capsule policy.

  2. 2

    Pin the commercial terms.

    A registered provider publishes a one-use quote. Recipient, service, amount and fixed-term obligations belong to that quote—not to the agent’s explanation.

  3. 3

    Then the work changes.

    The owner withdraws the project’s authority. The agent’s earlier instruction still exists, but it is no longer current authorization.

  4. 4

    An old request reaches the Gate.

    Being under a cap is not enough. The Gate checks current project state, canonical terms, agent identity, uniqueness and full commitment before any reservation.

  5. 5

    No new payment. A clear reason.

    A hard denial cannot be overridden by owner approval. Existing scheduled transfers are a different matter: withdrawal cannot recall them or discard their pending records.

Illustrative workflow, not a claim that every unbounded agent overspends. The Rust contract enforces only authenticated state and supported terms.

Give the boundary a test.

Change the quote. Push the budget. See which rule keeps the latch closed.

TypeScript preview · BROWSER_FIXTURE

Client Work Capsule

BROWSER_FIXTURE

Fictional booking website · one agent · infrastructure scope

Frozen fixture clock: 7 Nov 2026 12:00 UTC. Active quotes expire 8 Nov 2026 12:00 UTC. Historical test data, not a live quote.

Three representative cases

Open the full Gate Lab: 14 scenarios

A fresh database quote within this capsule's scope.

Expected rule APPROVED · changing any input re-evaluates the local preview.

Evaluating quote…Inspect decision

Already settled: 0.50 NEAR. Reserved: 0.20 NEAR. These are fixed demo inputs, not funds in a wallet.

Due now0.50NEAR
Full commitment0.50NEAR

All-inclusive one-time fixture price. Quantity: 1. Provider identity, recipient and terms come from the canonical demo quote.

Gate decisionTypeScript preview · BROWSER_FIXTURE

Evaluating quote…

Computing the local canonical hash. No payment is submitted.

Browser fixtureSeeded values and TypeScript preview · no contract call, signer, transfer or paymentBROWSER_FIXTURE

TypeScript explains. Rust enforces.
No signature, transfer, reservation or owner approval is performed here.

A small first charge. A long commitment.

A Client Work Capsule checks what is due now—and what you are agreeing to later. Fixed term only: no auto-renew or supplier cancellation.

Same first charge. Different obligation.

Due now
0.20NEAR
Full commitment
0.20NEAR
First paymentNo future periods
Fits this illustrative budget

The 0.20 NEAR price is all-inclusive for this one-time fixture quote.

Shared with the Gate preview, not the seeded project ledger. Canonical fixture quotes, native NEAR; monthly fixed term, no auto-renew, cancellation terms represented by a fixture hash. Unknown usage, uncapped fees and indefinite renewals are unsupported and denied. No renewal collection or supplier cancellation.

Paid is a fact. Delivered needs evidence.

Follow one purchase from human authority to an explicit record of acceptance. Approval, settlement, provisioning, objective checks and human acceptance stay separate.

A successful transfer does not prove a database exists. A fixture check does not prove a client is satisfied.

Read the evidence boundaries

A purchase is not one success state.

Select any lifecycle node to see what it records and what it cannot prove. A scheduled transfer or RPC inclusion is not confirmed settlement.

Inspect a seeded record

Financial authority & payment

Delivery & acceptance

Database instanceFinancial: APPROVED · SettledDelivery: Fixture observed / fixture check passed · acceptance not recorded
Not settlement

Scheduling a transfer or seeing RPC inclusion does not prove the native payment succeeded. The reservation remains pending.

Stage explanation, not progress. Selected record is shared with the Outcome Receipt below; no live event stream.
Outcome Receipt

Database instance

purchase-db-demo-01
Seeded example
Due now
0.50 NEAR
Full commitment
0.50 NEAR
Project revision
1 · demo
  1. 1
    Authorization

    Within the seeded capsule's rules

    Approved
  2. 2
    Payment

    Seeded settled state, not a chain observation

    Settled
  3. 3
    Provisioning

    Controlled resource-manifest fixture, not a real database

    Fixture observed
  4. 4
    Objective check

    Seeded website-resource-fixture-v1 check; no endpoint contacted

    Fixture passed
  5. 5
    Human acceptance

    A separate authenticated decision, never implied by a check.

    Not recorded

Inspect the evidence layer

Mandate · seeded source, not live evidence

Project
Fictional booking website
Capsule / revision
Demo capsule · project revision 1
Authority source
Seeded browser data; Rust requires owner-authenticated state
Policy
Immutable per capsule; agent cannot amend it

Seeded observation: 7 Nov 2026, 12:02 UTC

Inspect source & exact amounts
Quote ID
database-demo-01
Amount due now, yoctoNEAR
500000000000000000000000
Source
Browser demo data · fictional project
Transaction / evidence digest
Unavailable; no fabricated reference
Seeded observation time
7 Nov 2026, 12:02 UTC
Policy reference
Demo capsule · immutable authority in Rust

A clear account of the work.

Run Intelligence starts with project costs and inspectable outcomes, not an opaque score.

Choose what to disclose.

The implemented report reducer is read-only and selected by the owner. This preview uses public, fictional fixtures to show that idea.

Include in this demo report

No account identities, private prompts or artifacts in this demo export.

Project Expense & Outcome ReportRead-only preview

Automated Booking Website

7 November 2026 · one fictional project · native NEAR

Nothing selected to share.

Financials and expenses stay out by default. Select the details you want this demo report to include.

Browser fixtureSeeded values and TypeScript preview · no contract call, signer, transfer or paymentBROWSER_FIXTURE

No share link or client account system. This demo does not authenticate a human owner.

Built to be checked.

Concrete enforcement. Explicit limits. Local evidence you can reproduce.

Run the tests

Recorded checkpoint · 11 November 2026 · Node and browser counts re-run today; the Rust/SDK count is the last recorded Linux run. Not a live test counter.

147Rust / SDK testsMocked host outcomes · separate from Sandbox
637Node tests115 backend · 216 frontend · 306 NEAR-path
LOCAL Sandbox3 scripted agency runs passed9 November 2026 · isolated loopback, not public testnet

The Rust contract checks

  • Current project authority

    Owner-authenticated status, revision, expiry and exact capsule binding.

    C / P cases
  • Canonical quote

    Registered provider, pinned recipient, hash, asset, terms and one-use quote.

    Q / G cases
  • Full commitment

    Checked integers; immediate reservations and future authority remain separate.

    P-06–13
  • Replay & resource duplication

    Unique requests and atomic canonical project-resource claims.

    G-09–11 / P-10–11
  • Actual settlement outcome

    Private callbacks inspect the native transfer and resolve at most once.

    S cases

The boundary is the architecture.

The model proposes. The contract authorizes. Evidence says only what it can prove.

  1. Proposal

    AI / scripted agent

    References the task and quote. Cannot raise its budget or approve itself.

  2. Authority

    Rust Gate on NEAR

    Loads canonical terms, checks current policy and reserves before a supported transfer.

  3. Observation

    Outcome evidence

    Private settlement callback, off-chain fixture checks and explicit owner records.

Browse the public source on GitHub

What can I try right now?

Choose a way in. No wallet, private key or payment is needed for these previews.

Inspect recorded testnet setup

A simulation is not a chain call. LOCAL records are not public testnet evidence. The recorded public purchase remains unresolved.

Clear boundaries. Including our own.

Useful questions before you delegate.

LOCAL prototype
Can the agent increase its own budget?

No. The human defines authority. Policy is immutable per capsule; changes require a new owner-reviewed capsule. AI explanations cannot activate policy or override a hard denial.

Does paying prove the purchase was useful?

No. Approval, native settlement, provisioning evidence, objective checks and human acceptance are separate facts. A fixture check or a hash cannot make external delivery true.

What happens when a project is withdrawn?

Owner-authenticated state prevents future authorization. It cannot recall an already-scheduled transfer. Pending records and future commitments are not discarded on withdrawal, expiry or a timeout.

What if a payment outcome is unknown?

The reservation remains fail-closed. A private callback must inspect the actual transfer outcome. No timer, browser error or owner-supplied outcome can trigger an automatic release or resend.

Is this a deployed NEAR or mainnet demo?

This interface is credential-free and seeded. On NEAR testnet a human completed four separately reviewed setup transactions: a 0.30 NEAR project, one task capsule, one one-use 0.05 NEAR quote and a submit-only agent key. One restricted purchase was then signed exactly once and has no on-chain record at three independent sources; it is unresolved and is never resent, re-signed or released. The end-to-end purchase-to-acceptance walkthrough here is LOCAL Sandbox. No mainnet execution or fiat peg is claimed.

Are private client files stored on-chain?

Full prompts, artifacts and sensitive client material stay off-chain. Bounded references or hashes detect changes, not truth or confidentiality. The report shares only fields the owner selects.