Skip to content

Treasury console

Terminal window
pnpm console:serve # http://127.0.0.1:8788

The 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).

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

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.

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:

Terminal window
CORRIDOR_WATCH=GABC…,GDEF… pnpm watch:report

Authentication. 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.

Terminal window
pnpm console:demo && RAMP_DATA_DIR=.data/console-demo pnpm console:serve

Every figure that produces is invented, and it writes to its own directory so it cannot be mixed into a real run’s books.

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.