Reference

Limits and status

What you have to trust, what the public chain shows, what is not built, and what is finished, stated plainly.

What you have to trust

  • Intel TDX, and OutLayer’s attested workers and keystore. The books are private only if the enclave is, and the random bytes that blind the fingerprint and salt the commitments come from the worker. Each run has a TDX attestation you can fetch by transaction hash.
  • The one enclave build the contract pins. The contract calls one build, named by its sha256, and no other. A deal names its build in the public arguments of the transaction that starts it, and state on the contract returns it as version_key. Build it yourself with near/build.sh and compare (the build is not yet bit-for-bit reproducible across machines).
  • Whoever holds the contract account’s key. In this demo the contract account still has its full-access key, which setup uses to deploy. Its holder could replace the contract, or start a new deal pinned to another enclave build. The same person owns the OutLayer project. In production that key is deleted or handed to a DAO.
  • The demo server. It holds a testnet key for every party, so one browser can play the whole deal. Each action is still signed by the one account entitled to it, and each screen opens only its own party’s envelope. In production each party, and each operator, holds its own. The one exception is /you: there the visitor’s browser holds the signing key and the view key, and the server plays only the other side.
  • Privy, if you sign in with it. Privy’s embedded wallet keeps your account’s key and signs when you approve. The browser-key option keeps the key in the browser’s own storage instead.

What the public chain shows

Who is in the syndicate, deposits and withdrawals with their amounts, who did what and when, one total per interest request, and envelope sizes. It does not show positions, per-lender payments, trade sizes and prices, the DQ list, or why a trade failed. Who sees what has the whole list, including what a careful reader could infer.

Not built

  • Prepayments, inside-information documents and a hundred-lender scale test exist in the Canton build and were left out of this one.
  • A production deal would have the agent admit an account before it can call; that is not built. An account outside the deal can slow the deal down.
  • Envelopes are not padded to one length.
  • Withdrawal amounts are public. Next on NEAR: withdrawals through NEAR’s confidential intents, so that even those amounts are hidden.

Status

The deal's rules and the enclave's protocol: 28 testsDone
The rules contract, deployed on NEAR testnet: 26 testsDone
The web app in NEAR mode, played in a real browser against testnetDone
The leak test, passing on both recorded runsDone
A trade with DQ screeningDone
The agent as two of three operators, on a Sputnik DAODone
A short payment, and the period that pays the restDone
Late answers: an answer that misses NEAR's two-minute wait changes nothingDone
Proofs: one fact, and nothing elseDone
Withdrawals through NEAR's confidential intentsNext

On testnet

Rules contractledger.paridesk.testnet
Test USDC (NEP-141, 6 decimals, no value)usdc.paridesk.testnet
Enclave programOutLayer project paridesk.testnet/pari-core on outlayer.testnet
The partiesagent, northwind (borrower), alder, birch, cedar (lenders), delta, rival (buyers), auditor, each .paridesk.testnet

There are two recorded runs, both played by npm run e2e on the final builds, on 11 and 12 November 2026. northwind-14 was played with one agent key, and northwind-13 with a DAO as the agent; its transactions are under The agent, two of three. A new deal replaces the live one on the contract; a run’s transactions stay on the chain, so the leak test and the proof check go on passing on both runs.

Step of deal northwind-14Transaction
The deal is loaded, every opening position sealedDXbQjGs4…
The agent types 900,000,000.00: refusedo36Pf9jk…
The agent requests 1,971,666.663AVZW7vF…
The borrower pays, in one transferMZM57dBE…
One settlement pays three lendersDndv3Zvq…
Alder withdraws 500,000.00 of its paymentDBeuzbsp…
The borrower sets its DQ list, sealedFD3fH8P4…
Alder's offer to Rival, sealedAvRnAici…
Rival's trade is not settledD85FiUHa…
Delta's trade settles, cash against loanCM8FBYGP…
Birch sends Alder's sealed offer as its own: refusedC2rKHgyb…
The borrower pays half of the second period's interestFkfBEtXV…
One settlement pays four lenders half eachDzXpdJXg…
The third period's settlement pays every unpaid half3CG5ocEE…

All 36 transactions of that run are in near/runs/northwind-14.json.

Where this build came from

Everything under near/, the app’s NEAR data layer and screens and the /you page were built during NEAR HACKATHON. Pari was first designed for Canton at HackCanton Season 3. That build is tagged pre-hackathon (the build as of 7 October 2026), and the full diff from it is pre-hackathon...main. The NEAR version reuses its idea, its demo deal, its test names and numbers, and the web app’s visual layer.

The code was written with Claude Code (Anthropic) as a coding agent, directed and reviewed by the builder. The web app’s visual layer is derived from sidereal-hedera (Apache-2.0).