Skip to content
OFFICIAL CA0xdafaa1ed0b9f5746a0cfa2be80371cf06a986977

Documentation

Time-Travel Debugger

Read-onlyRuns in your browser

Walk a workflow's checkpoints, open and verify their state, fork and re-run fixes, and the Upoch holder tiers.

Checkpoint tree

Every agent page has a Debugger button. It draws the workflow's whole checkpoint history from the chain: the canonical line, checkpoints a recovery superseded (kept on-chain), and checkpoints a recovery restored. Click a checkpoint, or use the arrow keys (up goes to the parent), to see its hashes, data URI, submitter and block. The tree is free for everyone.

State inspector

The inspector opens one checkpoint in your browser and checks each step against the chain before showing anything:

  1. The manifest (fetched from IPFS or Arweave, or a file you choose) must hash to the on-chain trace hash.
  2. The encrypted payload must match the digest the manifest names.
  3. It decrypts with the agent's key under this agent, execution and checkpoint (aes-256-gcm/1). The key stays in the tab and is cleared after use.
  4. The decrypted state must hash to the on-chain state hash.

It then shows the state, the context (prompts, tool outputs) and the action journal, marking each action settled or in flight.

Sandbox and re-run

Fork any opened checkpoint, edit its state and compare: the sandbox lists every change and the state hash the edited state would carry. To preview what patched code would do, paste the body of async function step(state, ctx): it runs against the forked state in an isolated Web Worker with no network access, a 5-second limit and simulated actions (ctx.action(type, input) records an action and returns a stub). ctx.instructions carries an editable instruction set, so you can test alternative prompts or parameters too.

From fork to recovery

Nothing in the debugger sends a transaction. Propose rollback to #N opens the recovery page with that checkpoint selected; the owner or a guardian proposes, and the policy's approvals and timelock apply. After the rollback, the agent resumes from #N; to resume from your edited state instead, download the fork draft and read it in the agent:

resume.ts
import { readForkDraft, ROBINHOOD_MAINNET } from "@upoch/sdk";
import { readFileSync } from "node:fs";

// Checks the draft is for this workflow and that its state matches its hash.
const draft = readForkDraft(readFileSync("upoch-fork-w2-cp3.json", "utf8"), {
  chainId: ROBINHOOD_MAINNET.chainId, ledger: ROBINHOOD_MAINNET.ledger, workflowId: 2,
});
const state = await session.restoreOrInitialize(() => draft.state);
// After a rollback to draft.fromSequence, resume with the edited state:
Object.assign(state, draft.state);

Tier 2 tools

  • Batch simulation: run patched code over up to 1,000 scenarios (each passed as ctx.scenario) and compare results, changes and actions in one table.
  • Security scan: a rule scan in the browser for leaked private keys, seed phrases, API keys and tokens, credentials in URLs, unlimited approvals, zero recipients, prompt injection and in-flight actions. Where configured, an AI review (Claude) can also be run on a checkpoint you choose to send; it asks for consent each time.
  • Guardian dispatch: for an open recovery, who has approved, how many approvals are missing, the time left, and a ready message with the approval link for each guardian.

Access tiers

TierNeedsGives
FreeNothingCheckpoint tree, verification, every recovery action, the sample checkpoint
Tier 11,000,000 Upoch held or stakedState inspector, sandbox, re-running patched code
Tier 210,000,000 Upoch stakedBatch simulation, security scans, guardian dispatch

A wallet counts only after it signs a single-use message from the site (free, no transaction). Balances are read from Robinhood Chain on every visit. Staking uses the UpochStaking contract: no owner or admin, no rewards, a 7-day cooldown to withdraw, and not audited. Verification and recovery are never gated.

Try it

Workflow #2 on mainnet is a public demo agent (paper trading, no funds); its demo key is in its description. Everyone can also open the sample checkpoint on any debugger page.