Every block, transaction, address and hash on this chain is generated from a fixed seed. None of them exists on any network, and none of these values can be looked up anywhere else. The execution trace is real — it is a recorded Noir program — but it is not the execution of the transaction it is published under.
demo
How far back this chain can be debugged
This chain's registry row states no historical reach, so this page claims none. Whether a particular transaction has a recording is stated on that transaction's own page, which is a fact about that transaction rather than a promise about the chain.
This chain's published data carries no count of debug tiers, so this page states none. Each transaction's own page states whether it steps at source level or instruction by instruction.
What this debugger can show
Each entry is one small Noir program. Open one to step through it — the source, the function names and the values are the program's own. The transaction it is published under is synthetic, like every other transaction on this chain.
- values
- Types and valuesEvery value kind the language has, brought into scope one line at a time. The subject is the Values pane: a reader stepping through should be able to name the type of every row they see.
- loops
- Loops and iterationThree loop shapes, chosen so the loop rail has iterations worth moving between and values that differ from one iteration to the next. A loop whose variables never change is a rail with nothing on it.
- branches
- Branches and conditionsEvery `if` here is written so that both arms are reachable and the inputs decide, and each classifier is called more than once with values landing in different arms — so the same source line is marked taken on one visit and not-taken on another.
- calls
- Calls and recursionA call tree worth looking at rather than a flat list: direct recursion several frames deep, two functions calling each other, tree recursion that branches, and a helper reached from two different parents.
- generics
- Generics and traitsSource written once and executed several times over different types. A generic function has one body and many instantiations; a trait method has one name and many bodies. Both make "which code is running" a real question, and the call trace is where it is answered.
- events
- Program output and the event logThe stream of things the execution SAID, as distinct from the values it held. In this language that stream is `print`, `println` and format strings, and it is the only pane whose content a program author writes directly.
- constraints
- Constraints, and an execution that fails oneWhat a recording looks like when the program does NOT finish. This is the case a zero-knowledge debugger exists for: a constraint did not hold, and the question is which one, on which values, reached from where. The recording ends at the failing assertion.
- limits
- Bounds, limits and overflowWhat happens at the EDGES of a type. In a circuit this is not a curiosity: an addition that overflows is a failed constraint, and the difference between wrapping and aborting is the difference between a proof and no proof.
- mutation
- Mutation over timeA value that CHANGES. Everything else in this tour shows values computed and bound once; this one shows the same binding holding a different value at a different time, which is the case a time-travelling debugger answers and a printout of the final state does not. The forms the recorder captures come first; the one it does not is last, alone and labelled.
Latest blocks
| Height | Block hash | Txs | Finality | Parent |
|---|---|---|---|---|
| 102 | 0x124f…9b8e | 2 | Unfinalized | 0x72e9…18ba |
| 101 | 0x72e9…18ba | 2 | Unfinalized | 0xd43d…508a |
| 100 | 0xd43d…508a | 6 | Finalized | 0x8084…1778 |
| 90 | 0x5516…93c3 | 9 | Finalized | 0x895f…4120 |
Latest transactions
| Debug | Tx hash | Block | From | To / target | Method | Fee | Status |
|---|---|---|---|---|---|---|---|
| Generate trace | 0x27a6…9a6c | 102:0 | 0x37c4…79a2 | 0x3115…3e2b | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x5c67…f8df | 102:1 | 0x01c8…d932 | 0xc699…f6cb | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0xb636…6359 | 101:0 | 0x01c8…d932 | 0x1b31…624c | 0x | 88000 / 200000 mana | Partialprivate-part-succeeded-public-part-succeeded |
| Debug (divergent) | 0x0baa…4a96 | 101:1 | 0x01c8…d932 | 0xae27…671f | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0xa459…9296 | 100:0 | 0x37c4…79a2 | 0x6f1b…c4a5 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0xd663…912f | 100:1 | 0x01c8…d932 | 0x9cef…e89c | 0x1a2b3c4d | 100000 / 100000 mana | Revertedassert(did_survive_positive == true) — constraint not satisfied at src/main.nr:35 |
| Debug | 0x1e82…836b | 100:2 | 0xc11f…d1d8 | 0x3171…872f | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Generate trace | 0xfc0f…f376 | 100:3 | 0x18cd…06dc | 0x6f1b…c4a5 | 0x7f3e21c4 | 1874320 / 2000000 mana · 412800 / 500000 gas · 938114 / 1000000 gas · 6 / 8 slot · 24 / 64 count | Succeeded |
| Not observable | 0x7975…1064 | 100:4 | 0x37c4…79a2 | 0x6f1b…c4a5 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| No recorder | 0x2ff4…642c | 100:5 | 0x37c4…79a2 | 0x6f1b…c4a5 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0xc065…6075 | 90:0 | 0x8dad…805e | 0xe4d6…ed46 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x6de4…4154 | 90:1 | 0x9814…0d17 | 0xe744…90c9 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x84de…e3dd | 90:2 | 0x36e8…3110 | 0x78e9…8f93 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x7bc0…32b7 | 90:3 | 0x09d5…b0e2 | 0x9c09…af17 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0xa307…c756 | 90:4 | 0x91bb…f8fe | 0x6162…dca7 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x4535…ec75 | 90:5 | 0x1d5f…897e | 0x7786…f011 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x4db8…b88d | 90:6 | 0x2661…c58d | 0xe94e…31c5 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x7848…a799 | 90:7 | 0x7bf2…11fb | 0x20f0…00b7 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
| Debug | 0x6449…211f | 90:8 | 0x38c5…3166 | 0x10eb…99e5 | 0x1a2b3c4d | 42000 / 100000 mana | Succeeded |
About this data
Synthetic demo data — Every block, transaction, address and hash on this chain is generated from a fixed seed. None of them exists on any network, and none of these values can be looked up anywhere else. The execution trace is real — it is a recorded Noir program — but it is not the execution of the transaction it is published under.