> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useslip.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# TxLINE integration feedback

> Verified strengths and integration friction found during live activation, proof reconstruction, and tamper testing.

# TxLINE integration feedback

This feedback comes from the live devnet activation, proof reconstruction, tamper testing, and keeper
integration used to build Slip.

## What worked well

### Free World Cup activation

The free service-level-1 subscription worked without TxL payment. The documented account list and
the `txSig::jwt` activation preimage matched the live service. TxLINE's runnable devnet examples were
the fastest route to a correct authentication implementation.

### Normalized football schema

The stable fixture and stat-key model made the same market expression usable for goals, cards,
corners, and period variants. One- and two-stat validation payloads support a broad product without
separate settlement adapters.

### Enforced proof semantics

Live tamper tests confirmed that valid predicates return a boolean while corrupted proof nodes or
stat values revert. This is a strong foundation for permissionless settlement.

## Friction encountered

### Merkle byte layout was not documented

Independent verification required recovering that stat leaves are bare 12-byte Borsh structs, while
fixture leaves include a leading `0x01` enum tag. Positional node hashing has no domain byte. Publishing
the exact preimages and combine rule would save integrators substantial reverse-engineering time.

### Current replay roots move

Devnet fixture replay rewrites the current virtual five-minute slot. A proof may match only briefly,
which initially looked like a construction error. Documentation should distinguish moving replay
roots from stable `game_finalised` roots and recommend a proof-fetch/submission strategy.

### Hash encoding differs from examples

The stat-validation endpoint returned hashes as JSON `number[]`, while the documented helper expected
hex or base64 strings. The API and helper should use the same accepted formats.

### `ScoreStat.period` is easy to misread

The proof leaf's `period` is match phase or `StatusId`, not the period prefix embedded in `statKey`.
Both concepts appear in the football schema, so the field needs an explicit warning.

### Zero-valued leaves may be absent

An absent zero stat cannot be proved. This materially affects false-side markets such as both-teams-
to-score. The score schema should document presence rules and expose a canonical way to prove zero or
non-membership if such markets are intended.

### Historical response shape and root account layout

`/api/scores/historical/{fixtureId}` returned a very large blob during testing rather than an obvious
paginated JSON collection. The `daily_scores_roots` byte layout was also not documented. Pagination,
schema examples, and a published account type would improve integration reliability.

## Most valuable improvements

1. Publish canonical Merkle test vectors and byte layouts.
2. Document replay anchoring and final-root stability.
3. Normalize proof hash encoding.
4. Distinguish stat-key period prefixes from proof phase fields.
5. Document or solve absent-zero proof behavior.
