Ballast
Recorded on a fork, no wallet needed

Replay: one closure, start to finish

A loan is opened, shielded before Friday's close, refused a restore over the weekend, restored on Monday, and its guardian is paid. Recorded on a fork of BSC mainnet at block 126,572,111, against the contracts deployed there.

Friday 16:19 New York, market closed

Demo recordingRecorded on a fork of BSC mainnet at block 126,572,111 (Fri Oct 9). 18 real fork transactions; 7 of 9 steps also have a transaction on BNB Chain itself.

The wheel

The meridian at the top is the moment of the step. The arc marks the weekend closure the loan crosses.

Step 1 of 9Fri 00:30overnight, closed
ShieldRefusedRestoreJob settled

The steps

Lista NVDAB / USD1, borrower 0x180E1E...8387, desk agent 368122. Times are New York time on the fork's clock.

  1. The fork carries Ballast as deployed: the Session Oracle names 0xccD7f069275549793b2A8804A5691fCa6665D152 as publisher, registered as ERC-8004 agent 368122. This replay runs against those contracts, not a copy.

    Transactions on the fork

    None: the fork already carries these contracts.

    Decoded result

    Session Oracle
    0x8Fc983...5388
    Session-aware feed
    0xC54423...aE20
    Account factory
    0xE12f14...0a72
    Cushion vault
    0xf0089b...E334
    Publisher's ERC-8004 id
    368122
    Restore delay
    90 min
    Longest overlay life
    360 min

    State after this step

    New York
    overnight, closed
    Oracle: may risk be added
    No: not regular
    Feed band
    plus or minus 5.6%

    Reproduce it

    pnpm verify:onchain
    On BNB Chain

What a fork changes, and what it does not

The contracts, the calendar and every rule are the ones on BNB Chain. A fork lets the clock move and stands in for the parties that cannot be present.

  • The fork's clock is moved forward: a close, a weekend and an open pass in seconds.
  • Lista's price sources are frozen behind a fixed-price mock (32 prices kept as read), because they go stale when the clock moves.
  • The NVDA Chainlink feed is replaced by a mock that reprints the frozen per-share price after each move, because a fork receives no new rounds.
  • The desk's address 0xccD7f069275549793b2A8804A5691fCa6665D152 is impersonated by the local node. No key of the desk is used.
  • The borrower 0x180E1EeF864aA14c501921C4802A42fAa8D88387 is a throwaway address, funded with 20 NVDAB and 1,000 USD1 from an exchange wallet on the fork.

Record it again yourself: start anvil --fork-url <BNB Chain archive RPC> --chain-id 31337 --port 8571 --auto-impersonate, run forge build in contracts, then FORK_RPC=http://127.0.0.1:8571 pnpm tsx scripts/demo/record-replay.ts. The recording this page plays is at /replay/cycle.json.

Recorded 2026-10-09 against contracts/deployments/56.json. Session Oracle 0x8Fc983...5388, guardian 0x1049E9...BcD8.Ballast