<!-- file: docs/VALIDATION_STATUS_0_7_52_FINAL.md -->

# Validation status — 0.7.52 Raydium Stable Swap final

## Scope

Decoder: `raydium_stable_swap`

Program id:

```text
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h
```

## Local commands

```text
cargo test -p kb_lib
407 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

cargo clippy -p kb_lib --all-targets -- -D warnings
ok
```

## Final replay snapshot

```text
replayed=298
decode_skipped=0
ledger_upserts=298
unsafe_ledger_rows=258
trades=290
liquidity=16
lifecycle=4
tokenAccount=0
candle_upserts=1160
instructionObservations=5317
resetDeleted=1059
catalog=40 tokens / 59 pools / 59 pairs
```

## Stable Swap swap closure

```text
raydium_stable_swap.swap_base_in  stable_swap_instruction_bounds_only  failed   decoded=27  trades=0
raydium_stable_swap.swap_base_in  stable_swap_vault_balance_delta      success  decoded=171 trades=171
raydium_stable_swap.swap_base_out stable_swap_instruction_bounds_only  failed   decoded=2   trades=0
raydium_stable_swap.swap_base_out stable_swap_vault_balance_delta      success  decoded=4   trades=4
```

No successful Stable Swap swap remains without trade or skip reason.

## Invariants

| invariant | status |
|---|---|
| residual local `instruction_audit` | empty |
| residual `upstream_git.instruction_match` for covered entries | empty |
| decoded without coverage | empty |
| non-swap materialized as trade | empty |
| failed tx materialized as trade | empty |
| multi-target materialization | empty |
| unexplained successful non-materialized event | empty |
| successful swap via vault deltas | `trade_count = decoded_count` |
| failed swap instruction bounds only | `trade_count = 0` |

## Decision

`0.7.52 raydium_stable_swap` is closed for the current local corpus.
