Treasury console
pnpm console:serve # http://127.0.0.1:8788The console is a window on the engines, not a second source of truth. Every panel is a select; no key is opened, nothing is posted, and anything other than a GET is refused — so the console can never be the reason a number changed (ADR 0011).
The panels
Section titled “The panels”| Panel | What it reads | What it is for |
|---|---|---|
| Corridor board | Customer and customer-hold balances, per corridor and asset | What Corridor owes, and how much is committed to a payout still in flight |
| Pre-funding forecast | Postings out of each customer’s balance over 7 days, against what is left | When a customer needs to top up |
| Venue balances | Vault balances per venue, and each clearing pair’s legs and net | Where the float is, and what is in transit |
| Settlement timeline | The 25 most recently touched sagas and their steps | Following a payout from the ledger to the chain |
| Exceptions queue | Failed compensations, then manual_review stops |
What needs a person |
| Booked fees | The revenue accounts | What Corridor has actually earned |
Three things it refuses to guess
Section titled “Three things it refuses to guess”Direction. asset, expense and clearing accounts are debit-normal; liability, revenue and equity are not. Reading a customer’s balance the wrong way round would report what Corridor owes as a negative number, so the panels sign each balance by its account type.
Scale. The ledger stores minor units and they are not all the same: the stablecoins are 7 dp to match Stellar, SOL is 9, fiat is mostly 2, CLP is 0. The server sends the scale with every response rather than letting the page assume one.
A rate that does not exist. A customer who has not paid out yet has no spending rate, so the forecast shows no rate yet instead of an infinite runway. A well-funded tick there would be a guess dressed as a number.
What is deliberately absent
Section titled “What is deliberately absent”Chain-side reconciliation. Matching Horizon against the books means polling as an observer, and an observer advances its cursors — a write, and one that would consume movements watch:report has not seen yet. A console that quietly starved the reconciler would be worse than one that sends you to it:
CORRIDOR_WATCH=GABC…,GDEF… pnpm watch:reportAuthentication. There is none, which is why the console binds to localhost. It is Corridor’s own operations view, not a tenant’s; the tenant-facing surface is the Ramp API, which has keys.
Looking at it without a testnet run
Section titled “Looking at it without a testnet run”pnpm console:demo && RAMP_DATA_DIR=.data/console-demo pnpm console:serveEvery figure that produces is invented, and it writes to its own directory so it cannot be mixed into a real run’s books.
The prototype’s console
Section titled “The prototype’s console”The earlier Tempo console is kept beside it at /prototype.html as a static replay, as evidence of the prototype: a recording of real Tempo and Solana runs from 11 October 2026. Every figure in it is a Tempo-era run, not a Stellar one, and nothing in it reflects this build.