# resettable-list-nonce

> Canonical shielded coin nonce derives solely from a selected ledger List length that another exported entry can reset.

Canonical: https://nightshade.dicksonwu.xyz/rules/resettable-list-nonce.html
Release: Nightshade 0.1.1 (v0.1.1)

| Field | Value |
| --- | --- |
| Rule ID | `resettable-list-nonce` |
| Severity | low |
| Confidence | high |
| Maturity | experimental |
| Selection | Opt-in |
| Policy intent | not required |
| Default enabled | no |
| Category | Other active opt-ins / State and collections |
| Engine facts used | canonical-mint-observations, completed-entries, cross-entry-state-writes |
| Release | v0.1.1 |

## Selection and scope

Not selected by default. Select it with `--detectors` or the `detectors` list in nightshade.json. Either one replaces profile selection, so list every rule you want.

```sh
./.nightshade/node_modules/.bin/nightshade ./contracts --detectors resettable-list-nonce
./.nightshade/node_modules/.bin/nightshade detector show resettable-list-nonce
```

The first command runs only this rule; `--detectors` takes a comma-separated list. The second prints the rule's metadata from your installed version.

Severity is review priority. It does not express exploitability or impact. Confidence is detector metadata, not a probability. All built-in rules are experimental.

Compiler scope: the engine supports the pinned profiles 0.28.0, 0.29.0, 0.30.0, 0.31.1, 0.33.0-rc.2, 0.34.0, 0.35.0-rc.1 and 0.35.0, with ZKIR2 by default. Support for this rule can be narrower; the rule documentation below states any narrower scope.

## Corpus checks

Synthetic corpus checks for this rule in the 0.1.1 proof run. A check counts only with compiler acceptance and complete analysis.

| Positive detected | Corrected quiet | Lookalike quiet | Other negative quiet | Incomplete |
| ---: | ---: | ---: | ---: | ---: |
| 4/4 | 4/4 | 4/4 | 0/0 | 0 |

No deviations were recorded for this rule.

These are behavior checks on synthetic fixtures, not a precision or recall estimate. See [evaluation](https://nightshade.dicksonwu.xyz/evaluation.md#synthetic-corpus).

## Rule documentation

From https://github.com/DicksonWu654/nightshade/blob/v0.1.1/docs/detectors/resettable-list-nonce.md at v0.1.1.

Availability: opt-in. Severity: low. Confidence: high.

Whole-root or identical literal selectors establish the same storage region.
Dynamic Map selectors establish only may-overlap: the finding does not equate
independent wildcard reads or assert that callers choose equal selectors.
The review identifies a source that cannot serve as a monotonic extent across
potential resets. Transaction feasibility, actual nonce recurrence, authorization
intent, secret compromise and cryptographic attacks remain unproved.

The consumer uses immutable query and native invocation snapshots, never variable
names or a union of ledger dependencies. Caller nonce inputs, independent Counters,
length used only as an amount, distinct literal selectors, aborted resets and local
namesake helpers do not establish this relationship. Generic arithmetic, unknown
seeds, decreasing pop operations and arbitrary crypto consumers are outside this
initial contract.

The informational companion [`resettable-memo-nonce-review`](https://nightshade.dicksonwu.xyz/rules/resettable-memo-nonce-review.md)
adds a separate, narrower paired consumer observation for an exact selected
recipient List and direct evolved payload append. It preserves this coin rule's
findings and does not infer the stored payload's cryptographic role. Coin-only
quiet controls do not establish memo uniqueness.

## Suppress a match

If a match is intentional, suppress it on the line before with the exact rule ID and a reason of at least eight characters:

```compact
// nightshade-disable-next-line resettable-list-nonce -- Reason this match is intentional
```

Diagnostics cannot be suppressed, and an unmatched directive for a selected rule makes analysis incomplete. See [configuration](https://nightshade.dicksonwu.xyz/configuration.md#suppress-an-intentional-match) for fingerprint suppressions and baselines.

## References

- [Rule source document at v0.1.1](https://github.com/DicksonWu654/nightshade/blob/v0.1.1/docs/detectors/resettable-list-nonce.md)
- [Catalog entry in rules.json](https://nightshade.dicksonwu.xyz/rules.json)
- [All rules](https://nightshade.dicksonwu.xyz/rules.md#state-and-collections)
- [Limitations](https://nightshade.dicksonwu.xyz/limitations.md)
