A common home for evidence-based research into Monad Improvement Proposals (MIPs).
This repository treats protocol behavior as a research problem: claims should be supported by reproducible evidence before they are treated as verified. Each MIP under investigation gets its own top-level folder containing all of its research documents, experiment scripts, and runnable example projects.
| MIP | Topic | Folder |
|---|---|---|
| MIP-4 | Reserve Balance Introspection | MIP-4/ |
Every MIP folder follows the same layout (omit directories that don't apply — a docs-only MIP just has README.md and docs/):
MIP-N/
├── README.md Overview, open questions, verified results, document index
├── docs/ Research writeups, findings logs, plans, presentations
├── scripts/ Experiment runners (e.g. bash + cast testnet drivers)
└── examples/ Runnable code projects, one self-contained folder per example
- All code lives under
examples/. Each example is a self-contained project folder named for what it does (e.g.MIP-4/examples/reserve-probes/), with its own toolchain config and dependencies. Different examples may use different frameworks (Foundry, Hardhat, viem/TS, …) and pin dependencies independently. - Secrets are per-MIP. Keystore passwords, deployed addresses, and env files live in
MIP-N/.secrets/, which is gitignored. Experiment scripts resolve paths relative to their MIP folder. - Monad Foundry. Foundry-based examples that exercise Monad-specific behavior (such as the
0x1001reserve-balance precompile) require the Monad fork of Foundry; standard Foundry cannot simulate the precompile.
Research claims should progress through an explicit evidence chain:
Claim
↓
Evidence
↓
Reasoning
↓
Conclusion
Conclusions should distinguish verified sufficient conditions from hypotheses and unverified behavior. Work that depends on unresolved semantics should be marked as blocked on further experiments.
Open work is tracked in the Research Board, which is linked to this repository.
The board uses four research-specific statuses:
Backlog: unresolved, dependent, or not ready for executionReady: well-scoped with a clear experiment or research deliverableIn Progress: actively being investigated or documentedVerified: supported by verified evidence recorded in merged docs or tests
Verified is intentionally different from “done.” Completing a task does not establish that its hypothesis is correct.
research: conceptual or protocol investigationexperiment: runnable tests or reproductionstooling: libraries, scripts, SDKs, or developer toolingdocumentation: notes and research writeupsblocked: depends on unresolved evidencegood first research task: small, bounded task for collaborators
- Create
MIP-N/with aREADME.mddescribing the proposal, open questions, and a document index. - Add
docs/,scripts/, andexamples/as the research produces them, following the layout above. - If an example has CI-runnable checks (e.g. a Foundry project), add its path to the matrix in
.github/workflows/test.yml.
- Select a
Readyissue from the research board. - State the claim or hypothesis being tested.
- Record the exact environment, transaction path, balances, callers, commands, and outputs.
- Separate observed facts from reasoning and conclusions.
- Update the relevant document or test with evidence.
- Move an issue to
Verifiedonly when the supporting evidence is committed and reviewable.
Negative results should be recorded as observations, not generalized beyond the tested environment.