<!-- DOCS_QUICKSTART:zero-login-demo -->
# Quickstart

Canonical HTML: https://spoolis.com/docs/quickstart. This page is also available in machine-readable Markdown.

Produce and verify a signed demo Outcome Receipt for 100 records, with 98 accepted, 2 rejected, and $98.00 earned.

## Sandbox limits

Sessions are short-lived and have compile, Spool, verify, input-size, and record limits. Always inspect the stable code and status envelope, including on HTTP 200. If a session expires or reaches a limit, POST /api/sandbox/session to mint a fresh session and repeat the flow.

## Checkpointed flow

1. Mint one session. Expect token, expires_at, and limits. Keep token.

2. Compile exact economics with deterministic (Live) checks. Expect status compiled and environment demo. Keep the Spool ID and condition IDs.

3. Accept once. Expect status completed. Keep the Spool ID.

4. Submit 100 rows to the row-count condition. Expect status completed. Keep the response.

5. Submit 98 complete and 2 incomplete rows to the completeness condition. Expect status completed. Keep the response.

6. Verify once. Expect PARTIAL, 98 accepted, 2 rejected, and 98.00 earned. Keep outcome-receipt.json and its ID.

7. Run npx -y @spoolis/cli verify outcome-receipt.json. Expect a valid demo receipt.

## Demo boundary

The sandbox verify response includes a top-level demo attestation. Unitized sandbox verification also includes a top-level demo receipt with its units block and proportional earned value. Non-unitized verification keeps the attestation-only response. Demo artifacts do not authorize production settlement or move real funds. Anyone can open and review a production shared Spool, but accepting it requires sign-in.

## Outcome Receipt

A unitized sandbox result returns the signed demo Outcome Receipt at top-level receipt and spool.verification.execution.outcomeReceipt. Authenticated v1 verification returns its signed Outcome Receipt at spool.verification.execution.outcomeReceipt when signing is configured. Both use schema spoolis/outcome-receipt@1 and can be verified with @spoolis/receipt-verifier and the matching environment trust set from https://spoolis.com/.well-known/spoolis-keys.json. The signed attestation is the lower-level layer underneath it.
