Skip to content

Document and enforce CosmWasm/SDK version matrix; update NeutronTemplate to match neutron-sdk defaults and add randomness guidance #308

@clydedevv

Description

@clydedevv

Summary
New devs starting from NeutronTemplate often end up on cosmwasm-std 2.2.x while neutron-sdk currently targets 2.0.x. This produces dependency duplication and trait/type errors that look like “SDK doesn’t work on NeutronTemplate.” Additionally, docs don’t provide an endorsed path for randomness/“VRF” on Neutron (ICQ/ICA patterns, commit-reveal, or IBC to a provider chain).

Problem

No visible version matrix → easy to get cw-std ≠ neutron-sdk minor.

Template doesn’t pin or check the exact cw-std minor expected by neutron-sdk.

No canonical randomness patterns page; developers assume they need “VRF module” and get blocked.

Evidence

neutron-sdk 0.11.x depends on cosmwasm-std 2.0.x (e.g., 2.0.4).
Docs.rs

Current Template docs don’t show versions; repo doesn’t surface a matrix.
Neutron Documentation

Viable cross-chain randomness exists (e.g., Secret VRF via IBC), but not documented in Neutron docs.
docs.scrt.network

Requested changes

Publish a version matrix (and keep it in one source of truth):

neutron-sdk ↔ cosmwasm-std minor ↔ neutron-std ↔ rust-optimizer image tag.

Pin Template to the matrix + add CI checks:

cargo tree -e features gate to fail on duplicated cosmwasm-std majors/minors.

Optional: a preflight script that prints the resolved versions.

Add a “Randomness on Neutron” doc:

Patterns: commit-reveal, ICQ to provider (e.g., Secret VRF), ICA to oracle, why “blockhash” is weak, and when each is acceptable.

Provide a minimal ICQ sample contract that queries randomness and a frontend demo.

Template snippets:

Example Cargo.toml showing cosmwasm-std = "2.0.4" with ["stargate"] when using neutron-sdk 0.11.

A commented variant for when neutron-sdk upgrades to cw-std 2.2.x or 3.x.

Impact

Prevents newcomers from chasing phantom “SDK incompatibility.”

Reduces support load.

Makes interchain features (ICQ/ICA) and randomness approachable.

Acceptance criteria

A page under SDK & Developer Tools showing the matrix and upgrade notes.
Neutron Documentation

NeutronTemplate updated to pinned, compatible deps; CI fails on version skew.
Neutron Documentation

A tutorial that compiles and runs: “ICQ Randomness Fetch (Secret VRF)” with contract + test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions