Specification Status
The ethdebug/format specification is actively evolving. Different parts of the specification are at different stages of maturity, and we want to be transparent about what tooling implementers can rely on today.
Status Levels
We use three status levels to indicate the maturity of each schema section:
Actively being developed. Expect significant changes to structure and semantics.
For implementers: Early feedback welcome, but implementations should expect breaking changes.
Stable enough to build against. Minor changes possible but core design is settled.
For implementers: Tooling can implement against this schema with reasonable confidence.
Stable schema with a working reference implementation available (debugger-side and/or compiler-side).
For implementers: Reference implementation demonstrates correct behavior. Check details for which side (debugger/compiler) has implementations.
Current status by schema
| Schema | Status | Notes |
|---|---|---|
| ethdebug/format/pointer | Reference Available |
|
| ethdebug/format/type | Implementable |
|
| ethdebug/format/program | In Design |
|
| ethdebug/format/data | Implementable | Stable |
| ethdebug/format/materials | Implementable | Stable |
| ethdebug/format/info | Implementable | Stable |
Guidance for tooling implementers
All schemas have TypeScript type definitions available in
@ethdebug/format, useful
for both debugger and compiler implementations.
Ready to implement
The pointer and type schemas are mature enough for implementation:
-
Pointer schema: Has a working debugger-side reference implementation (
@ethdebug/pointers) with comprehensive documentation. Start here if you want to build pointer dereferencing into your debugger. -
Type schema: Stable design covering all Solidity types.
Early adopters welcome
The program schema is under active development. The core structure (programs, instructions, contexts) is defined and foundational, but context types for function calls, returns, and reverts are still being designed.
If you're interested in helping shape this part of the format, we'd love your input! However, implementations should expect breaking changes as the design evolves.
Stay informed
- Watch the GitHub repository for updates
- Join our Matrix.chat for discussions
- Our working group meets bi-weekly on Thursdays at 17:00 Berlin time