Financial independence should not happen all at once.
CRESCO gives young people real room to make financial decisions inside family-set boundaries. A guardian defines a standing Key, represented technically by a versioned Mandate. Inside that Key, the young person can act without asking for permission every time. At the boundary, CRESCO refuses, explains why, and lets the family decide what should happen next.
Learn in context. Act freely inside bounds. Ask for more freedom only at the boundary.
- Product: https://cresco-lac.vercel.app
- Demo video: https://www.youtube.com/watch?v=e8qMwzTrU4M
- Technical video: https://youtu.be/hMjQcjsd-Ws
- Current CRESCO API: https://keys-api-stocklana.faadil-casecraft.workers.dev
- Repository: https://github.com/Faadil1/cresco
- Network: Solana Devnet
- Program:
ABjE6V5q9VbD3CAHDXxvztY5kXQmDXHRcEP1kZ4KSSfk - Canonical exact-action proof: https://github.com/Faadil1/cresco/actions/runs/36150024852
- Verified Node/API quality proof: https://github.com/Faadil1/cresco/actions/runs/36178796069
- Verified web CI: https://github.com/Faadil1/cresco/actions/runs/36178751111
- Verified WebKit mobile CI: https://github.com/Faadil1/cresco/actions/runs/36178751051
- Hosted market-discovery smoke: https://github.com/Faadil1/cresco/actions/runs/36178796222
The current API URL keeps its original Cloudflare worker hostname so the already-deployed runtime stays reachable. It serves CRESCO and is treated only as a legacy infrastructure identifier.
The current capital path moves a demo SPL token, not real securities. AAPL is the current proven Money lane with live Pyth market evidence. CRESCO does not claim brokerage, custody, mainnet execution, or real minor securities execution.
The Key is standing authority, not a per-action approval queue.
| Situation | CRESCO behavior |
|---|---|
| Action is inside the active Key | ALLOW. No guardian approval is required. |
| Action reaches a standing boundary | REFUSE. Adjust, Practice, or Ask for more room. |
| Guardian chooses Not this time | Standing Key stays unchanged. |
| Guardian chooses Allow once | One exact request can cross once. Standing Key stays unchanged. |
| Guardian chooses Widen the Key | A new standing Key version is created. |
| Market evidence is stale or insufficient | REFUSE or UNKNOWN. Never fabricate success. |
| Execution cannot be confirmed | PENDING or UNKNOWN. Never render confirmed success. |
Learning, XP, P&L, badges, and AI scores never grant or widen authority.
Pyth can restrict or stop an action. Pyth can never grant more human authority.
The canonical CRESCO flow is intentionally small:
- $5 AAPL inside the Key: ALLOW.
- $12 AAPL outside the current $10 action limit: REFUSE.
- Ask for more room.
- Guardian chooses Allow once for exactly $12.
- Change the action to $11: REFUSE with
AllowanceActionMismatch. - Restore the approved $12: ALLOW.
- One-time permission becomes USED.
- Standing Key remains v7 to v7.
- Replay the same $12 permission: REFUSE with
AllowanceAlreadyUsed.
The product point:
The exception moved. The boundary did not.
The technical point:
The UI is not the guard. The capital path is.
A conventional backend can reproduce much of the interface. CRESCO uses Solana because the authority boundary is enforced in the same execution path that moves the demo capital.
The current program proves:
- program-controlled demo-token capital;
- in-bounds execution without guardian approval;
- out-of-bounds refusal;
- versioned Mandate and nonce lineage;
- stale authorization refusal;
- explicit guardian widening;
- pause and downward authority;
- exact single-use Allow once;
- changed-action refusal;
- replay refusal;
- signed Pyth verification in the capital path;
- Pyth-derived USD/notional enforcement;
- precommitted market-condition refusal.
Real failure > fake success.
Every build must retain at least one concrete, observable, verifiable negative event rooted in reality. A theoretical risk is not enough.
Each build record must contain five elements:
- Positive signal / opportunity: why the problem or opportunity deserves a build.
- Concrete negative event: what actually failed, degraded, was rejected, lost value, or underperformed.
- Observable impact: blocked execution, delay, error, friction, manual work, money, churn, or another visible consequence.
- Design lesson: what the failure proves the product must do or avoid.
- Response / mitigation: how the build detects, reduces, contains, or refuses that situation.
Current failures are preserved in evidence/BUILD-QUALITY-RECORD.json and evidence/runtime/REAL-FAILURE-RECORD.md.
Examples already retained:
- Devnet deployment was blocked by an unfunded payer and faucet rate limiting. The workflow stayed
BLOCKED_FUNDINGinstead of claiming deployment. - A guardian-approved $12 one-time request was changed to $11. The Solana path refused with
AllowanceActionMismatch. - A deterministic v0.2 demo used the wrong engine input shape. CI returned
INVALID_AMOUNT, failed the workflow, and the failure stayed in the record until the script was corrected.
Failures remain evidence even after a later build passes.
CRESCO treats refusal and uncertainty as first-class outcomes.
- REFUSE: authority or evidence says the action must not execute.
- PENDING: execution was submitted but is not confirmed.
- UNKNOWN: the system cannot prove the final result.
- ALLOW: shown only when the required authority and proof are sufficient.
The repository tests stale authorization, unavailable market evidence, unknown eligibility, unavailable runtime, out-of-bounds notional, changed one-time actions, replay, timeouts, malformed responses, and other negative paths.
A build that only demonstrates success is incomplete.
CRESCO web
|
v
CRESCO API
|
+-- Family state and durable reservations
| Cloudflare Durable Object / SQLite
|
+-- Market truth
| Pyth Pro / Pyth Lazer
|
v
CRESCO Solana program
|
+-- Mandate
+-- AssetRule
+-- exact Allow once
+-- version / nonce
+-- refusal paths
|
v
Demo SPL-token capital movement
See docs/ARCHITECTURE.md.
AAPL is the current proven Money execution lane.
Explore can expose additional entitlement-checked Pyth markets for Learn and Practice across equities, crypto, FX, metals, and commodities. Feed availability does not create Money eligibility.
Tessera and PreStocks are representation-learning integrations. They do not automatically create execution eligibility or CRESCO authority.
CRESCO separates four questions:
- What company or asset is this?
- What does this token or representation actually represent?
- Is this user eligible to use it?
- Does the current Key authorize this action?
A positive answer to one question does not imply the others.
Proven now:
- Solana Devnet program;
- program-controlled demo-token execution;
- AAPL live Pyth evidence in the execution path;
- role-scoped child and guardian demo sessions;
- persistent Family state;
- boundary requests and guardian decisions;
- durable reservations and idempotency;
- exact one-time permission;
- confirmed Devnet receipts;
- source-backed Learn and Practice;
- mobile and WebKit coverage.
Not claimed:
- production KYC or identity verification;
- embedded production wallet custody;
- bank or card funding;
- brokerage;
- real AAPL or tokenized-stock ownership;
- Solana mainnet;
- real minor securities execution;
- universal issuer, venue, or jurisdiction eligibility.
| Path | Purpose |
|---|---|
apps/web |
CRESCO consumer frontend |
programs/keys |
Deployed Solana program source. The folder/crate name is a legacy technical identifier retained for proof reproducibility. |
src |
CRESCO backend, runtime, market adapters, and Cloudflare state |
test |
Node/API policy and fail-closed tests |
tests |
Anchor/Solana proof tests |
evidence |
Verifiable proof and retained failure records |
docs |
Public architecture, API, product rules, demo, and truth boundary |
product/PRD.md |
Current CRESCO product requirements |
Exploratory design work, collaborator handoffs, temporary state files, and submission strategy are intentionally absent from the public main tree.
Backend and policy tests:
npm install
npm test
npm run demoCRESCO web:
cd apps/web
npm install
npm run check
npm run devThe web check runs typecheck, lint, human-copy lint, tests, and a production build.
The public repository enforces:
- Node/API tests;
- Solana/Anchor proof workflows;
- web typecheck, lint, tests, and build;
- WebKit mobile checks;
- human-copy lint;
- build-quality evidence validation;
- hosted smoke tests;
- fail-closed market and execution behavior.
Run the build-quality gate directly:
npm run quality:gateThe gate requires a real negative event with all five canonical fields and verifiable proof.
- Product requirements
- Architecture
- Build quality rules
- Demo
- Backend API
- Frontend/backend contract v0.2
- Family learning layer
- CRESCO design system
- Truth boundary
- Cloudflare deployment
- Evidence
- Proposal is not authority.
- Evidence is not maturity.
- Profit is not decision quality.
- Silence is not consent.
- UNKNOWN is not eligible.
- Practice is not custody.
- Learning completion is not authority.
- Market evidence may restrict, expire, or refuse. It never widens human authority.
- Old authorization material cannot survive a new Mandate nonce.
- Allow once binds one exact request and one successful use.
- A token balance is not automatically conventional shareholder title.
- Private family reasoning is not public-chain data.
- The frontend is not the enforcement boundary.
- Real failure stays visible.