0xMiden/miden-vm - Open Source PR Review Scorecard

STARK-based virtual machine

C-Rank Grade: A (Welcoming) - 70/100

External PR Merge Rate: 68%

Response Time: 16h

First Timer Success: 49%

Frequently Asked Questions

Is 0xMiden/miden-vm welcoming to first-time open-source contributors?

0xMiden/miden-vm has a recorded first-timer success rate of 48.8%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in 0xMiden/miden-vm respond to incoming external pull requests in approximately 16.4 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 69.9 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 69.9 places 0xMiden/miden-vm in the A tier.

What is the external contributor pull request merge rate for 0xMiden/miden-vm?

The external contributor pull request merge rate for 0xMiden/miden-vm is 67.9%, based on public PR activity from non-core contributors.

Are there Good First Issues available in 0xMiden/miden-vm?

0xMiden/miden-vm currently has 8 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

0xMiden
0xMiden/miden-vmA•Welcoming776
GitHub
Back to Explorer
0xMiden

0xMiden/miden-vm

776
Active (30d)A•Welcoming(70/100)Rust

STARK-based virtual machine

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Empathetic Technical Mentor

Warmth Score
7.8/10
Patience Score
8.2/10
Nitpick Rate
35%

Collaborative maintainer environment in 0xMiden/miden-vm. Reviews community pull requests with focus on project quality.

Top PR Submission Do's

  • •Ensure code complies with the project coding style
  • •Keep PRs scoped to a single concern
  • •Include context and link to the related issue

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit PRs without linking an issue
  • •Do not break existing tests without fixing them
  • •Do not mix unrelated refactors in a single PR
Response Velocity
16 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
67.9%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
48.8%
Accepts new contributor PRs

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
43 core
Highly collaborative maintainer core
Diagnostic Health HUD
67.9%
Merge Gauge
48.8%
1st-Timer
Community Vibe59/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for 0xMiden/miden-vm
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/0xMiden/miden-vm)](https://getmerged.abhishekco.de/0xMiden/miden-vm?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

UniqueNodes is the serialized form of a partial SMT. Its writer emits a canonical shape: levels come out in ascending depth order (the BTreeMap order, source), each position appears once, and a position is either a leaf or a value-only entry. read_from (source) checks none of that. Three payloads that the writer can never emit decode without error: A position repeated inside one level. The reader inserts into a map, so the last value silently replaces the first. Levels in any depth order. The same set of nodes then has more than one valid encoding. A position listed in both leaves and value_only_leaves. get_leaf_hash prefers the leaf (through .or_else), so the value-only entry cannot be reached. The wire form of a node set is therefore not unique, and the decoder can be handed a state that its own accessors resolve inconsistently. Reproduction Save the following as crates/crypto/tests/unique_nodes_wire_reader.rs, then run: cargo test -p miden-crypto --test unique_nodes_wire_reader //

📅 Opened Oct 2, 2026💬 1 comment
Quality: 100/100Contribute

SourceSpan holds the bounds of a byte range, so it assumes start <= end. Its len() returns the unsigned difference end - start (source). The wire decoder reads a source id, a start, and an end from three u32 values and stores them without comparing the two bounds (source). A payload of start = 5, end = 3 therefore decodes without complaint. Calling .len() on the result panics in a debug build with attempt to subtract with overflow, and wraps silently in a release build. No writer produces such a span from a real source range, so the payload only arrives as hand-written or corrupted bytes. The decoder takes it anyway. Reproduction Save the following as crates/debug-types/tests/span_reversed_bounds.rs, then run: cargo test -p miden-debug-types --test span_reversed_bounds //! Reproduction for: `SourceSpan` wire decoder accepts reversed bounds (`start > end`); //! the decoded value panics on `.len()`. use miden_crypto::utils::Deserializable; use miden_debug_types::SourceSpan; /// A paylo

📅 Opened Oct 2, 2026💬 3 comments
Quality: 100/100Contribute

MerkleStore::find_lone_leaf (crates/crypto/src/merkle/store/mod.rs) accepts any tree_depth <= 64, but compares children against the empty subtree roots of a depth-64 tree: const MAX_DEPTH: u8 = u64::BITS as u8; ... let empty = EmptySubtreeRoots::empty_hashes(MAX_DEPTH); ... let empty_node = empty[depth as usize + 1]; For a shallower tree no child ever equals empty_node, so the walk stops at the root with Ok(None) even when the tree has exactly one leaf. get_leaf_depth uses empty_hashes(tree_depth) and works on the same tree. Repro (depth-8 tree, single leaf at index 105) assert_eq!(store.get_leaf_depth(root, 8, 105).unwrap(), 8); store.find_lone_leaf(root, NodeIndex::root(), 8) actual: None expected: Some((NodeIndex { depth: 8, position: 105 }, [1, 1, 1, 1])) Nothing in this repo calls it anymore, so this only affects external users with trees shallower than 64. Fix is empty_hashes(tree_depth); I have it with the test above if you want it.

📅 Opened Oct 1, 2026💬 0 comments
Quality: 50/100Contribute

Direct MAST root invocations such as call.0x... accept a root as 64 hex digits. The InvocationTarget documentation calls this a hexadecimal representation of a Word, but it does not define the byte order. The parser splits the literal into four 8-byte chunks and reads each chunk with u64::from_le_bytes. This matches Word::to_hex(), since Word::as_bytes() writes each field element in little-endian order. The missing documentation makes another plausible format unsafe. Formatting the same four field elements as canonical integers gives a different string that is still valid syntax: Word elements: 0x1f92867d5acabdfd 0xece9a4eb6d0c2ae1 0x9359c1a7ae1fa54e 0x1fc16cc6ab2d94c0 Word::to_hex(): 0xfdbdca5a7d86921fe12a0c6deba4e9ec4ea51faea7c15993c0942dabc66cc11f Canonical integer hex: 0x1f92867d5acabdfdece9a4eb6d0c2ae19359c1a7ae1fa54e1fc16cc6ab2d94c0 I reproduced this on next at bb21374d070e66773a6095c251e5e760e500e297. The first string parses back to the original Word. The second string also p

📅 Opened Sep 22, 2026💬 1 comment
Quality: 100/100Contribute

Summary AdviceMap::read_from inserts entries into the map without checking for a repeated key, so a serialized advice map that carries the same key twice deserializes Ok with only the last value. MastForestWireView::new rejects the same bytes ("duplicate advice key in wire payload"), so the wire view and the deserializing readers disagree on identical payloads, and the deserializing readers lose data silently. Where core/src/advice/map.rs, impl Deserializable for AdviceMap: map.insert(key, Arc::from(values)) in the read loop, no duplicate check. Reached from decode_from_reader_inner (core/src/mast/serialization/mod.rs), which backs both MastForest::read_from and UntrustedMastForest::read_from_bytes; UntrustedMastForest::validate() does not re-check the advice section. Package::read_from and AdviceInputs::read_from go through the same code. Contrast: WireAdviceMapView::new (core/src/mast/serialization/view.rs) rejects a repeated key. Every other list section of the wire format (externa

📅 Opened Sep 20, 2026💬 0 comments
Quality: 50/100Contribute
Looking for more Rust beginner tasks?Explore Rust GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for 0xMiden/miden-vm

When evaluating whether to contribute to 0xMiden/miden-vm, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of 0xMiden/miden-vm acknowledge new external contributions in approximately 16 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 67.9% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to 0xMiden/miden-vm

01

Is 0xMiden/miden-vm welcoming to first-time open-source contributors?

0xMiden/miden-vm has a recorded first-timer success rate of 48.8%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~16 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 69.9 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 69.9 places 0xMiden/miden-vm in the Welcoming tier.

04

What is the external contributor pull request merge rate for 0xMiden/miden-vm?

The external pull request merge rate is 67.9%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in 0xMiden/miden-vm?

Yes, 0xMiden/miden-vm currently has 8 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for 0xMiden/miden-vm are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.