DAY 010 / GROWTH PROGRAM

Growth Program: taking sensor-backed scorecards to Solana devnet

How Growth v2 expanded into sensor-backed custody receipts and moved from a local-validator proof to an evidence-pinned experimental Solana devnet program and published IDL.

01 / THE NEW BOUNDARY

A score contract became useful for physical custody—and real enough to verify on devnet.

Growth Program v2 now has an experimental Solana devnet identity and a broader product story: the same bounded, versioned score receipt can describe a team, a software project, a consenting contributor, or how well a physical asset was cared for during one period.

This is a continuation, not a rewrite. The earlier Growth Program build note freezes commit d944ee7: legacy containment, the hardened contract, the no-network simulator, and the isolated-validator proof before any public deployment. This note freezes commit 3497678, where the product surface expands and the candidate program plus IDL are recorded on devnet.

The devnet deployment closes the placeholder-identity gap. It does not close custody, independent reproduction, external audit, adversarial testing, indexer, soak, or public UI gates. The repository's decision remains NO-GO beyond experimental devnet.

02 / FROM LOCAL PROOF TO PUBLIC CANDIDATE

The delta is small in Git and large in what can now be claimed.

Commit d944ee7 proved the real Anchor program only on a disposable local validator under a provisional identity. Commit 3497678 changes the declared program address across source, IDL, local tooling, website copy, and tests; adds the dated devnet deployment manifest; and expands the use-case page with sensor-backed physical custody.

Exact release boundarytext · source
$ git diff --stat d944ee7..3497678
# 30 files changed, 718 insertions(+), 116 deletions(-)

The delta does two jobs:
1. expand the product map from people and projects into sensor-backed custody;
2. replace the provisional local identity with a recorded experimental devnet deployment.

The earlier Build Note remains a correct historical snapshot at d944ee7.
This note freezes the next public state at 3497678.
QuestionBuild Note 006This release
Where does code execute?Isolated local validator onlyLocal validator plus one experimental devnet program
What identity is authoritative?Provisional test addressDevnet program DA9e…DAVE
What can be scored?Teams, projects, contributorsThose three plus sensor-backed asset custody and 18 adjacent hypotheses
Is there a live public client?NoNo—the hosted simulator remains network-disabled
Release decisionNO-GO for devnet deploymentDeployed experimentally; NO-GO beyond that boundary

03 / WHY THE PRIMITIVE TRAVELS

The reusable part is not “growth.” It is a policy-bound assessment receipt.

The contract never decides whether a team is healthy or a cold room was managed safely. It provides bounded arithmetic, versioned rubrics, period ordering, consent and lifecycle rules, commitments, and append-style assessment history. Domain meaning stays in the issuer's rubric and evidence policy.

One receipt shape, different subjectsThe contract does not define what growth means. An Organization, Rubric identity or commitment, evidence policy, and compatible period policy give one bounded score vector its meaning. A subject public key can control a team, project, contributor profile, or physical-asset record; an asset therefore needs a controller wallet and custody policy.
The invariant under every use casetext · source
Meaning = Organization + Rubric identity/commitment
        + evidence policy + assessment period

Subject public key may represent:
  team controller | project controller | contributor
  asset-associated controller | operational-unit controller

Stored assessment:
  per-pillar score_bps + sample_count + coverage_bps
  weighted_score_bps + weighted_coverage_bps
  period_start + period_end + expires_at
  rubric_commitment + evidence_commitment

Comparison rule:
  compare only inside the same Organization and Rubric identity/commitment,
  under the same evidence policy and a compatible period policy

This distinction prevents a dangerous product slide. “Create a growth contract” in the playground means create an Organization PDA and a versioned Rubric inside one shared program. It does not deploy a new executable. And a ranking shown by a website is not on-chain truth: comparisons are defensible only when Organization, Rubric identity or commitment, evidence rules, and compatible period policy are genuinely shared.

On chain, every subject is a public key. A physical-asset workflow therefore needs an asset-associated controller wallet, plus explicit custody, recovery, and rotation rules for every lifecycle action that requires the subject signature. The program does not make a freezer, tank, or shipment sign for itself.

04 / SENSOR EVIDENCE

The contract receives a grade, not a firehose of readings.

A proposed physical-asset workflow begins with sensors and inspections, but those systems stay off chain. In that architecture, an adapter would check provenance, calibration, signatures, missing intervals, and exceptions before an accountable issuer applies one published rubric to bounded aggregates. Only then would a signed assessment reach Growth v2. The pinned repository does not yet implement or test this adapter or a telemetry verifier.

Proposed observe, validate, grade, commit pipelineProposed architecture, not an implemented repository service: sensors never call the Solana program. Raw telemetry would stay in a governed off-chain evidence system; an adapter would validate it, the issuer would grade bounded aggregates, and Growth v2 would store the declared result and commitment.
Proposed off-chain evidence envelope, illustrativeJSON + pseudocode
// Illustrative off-chain evidence envelope—not an on-chain account.
{
  "schema": "growth-evidence@1",
  "subject": "cold-room:BOS-03",
  "window": { "start": "2026-08-01", "end": "2026-08-31" },
  "sources": [
    { "logger": "T-07", "calibrationCurrent": true, "signed": true }
  ],
  "validation": {
    "expectedSamples": 43200,
    "coverageBps": 9980,
    "excursionMinutes": 11
  },
  "rubric": "COLD-CUSTODY/v3",
  "aggregates": ["five bounded pillar results"],
  "rawTelemetry": "private; retained and disclosed by policy"
}

canonical_payload = canonical_json(bundle)
private_salt = cryptographically_random_bytes(>= 16)

evidence_commitment =
  SHA-256("growth-v2:evidence:v1" || 0x00 || private_salt ||
          0x00 || canonical_payload)

authorized verification discloses canonical_payload + private_salt
through the evidence system's controlled channel

Keeping raw telemetry off chain protects commercial routes, facility operations, and detailed environmental histories from automatic public disclosure. The evidence commitment can later detect whether a disclosed canonical bundle changed when an authorized verifier receives both the bundle and its private salt through a controlled channel. It cannot establish that a logger was installed correctly, that calibration evidence is genuine, or that the issuer did not omit inconvenient readings. The envelope above is article-authored pseudocode; only its domain-separated, salted hash construction follows the repository's commitment guidance.

05 / WORKED EXAMPLE

A month of cold-room operations becomes one inspectable custody receipt.

The website's synthetic BOS-03 example starts with 43,200 expected readings, 99.8% valid coverage, two excursions totaling 11 minutes, a four-minute median response, and a current calibration record. Five declared weights produce a 96.1 result.

BOS-03 synthetic score calculationtext · source
Thermal compliance    40% × 96 = 38.4
Monitoring coverage  20% × 99 = 19.8
Excursion response   20% × 94 = 18.8
Calibration integrity 10% × 100 = 10.0
Access discipline    10% × 91 =  9.1
                                      ────
Synthetic weighted result             96.1 / 100

Context carried beside the result:
  43,200 expected samples · 99.8% valid coverage
  2 excursions / 11 minutes · 4-minute median response
  rubric COLD-CUSTODY/v3 · illustrative evidence hash

The useful object is not “96.1” by itself. It is 96.1 under COLD-CUSTODY/v3, for one declared window, with 99.8% coverage, five visible weights, an accountable assessor, and a commitment to the evidence bundle. A later rubric or a different issuer creates a different comparison boundary.

The example was informed by the World Health Organization's temperature-mapping guidance. It is synthetic; it is not a WHO certification, regulatory finding, or claim about a real facility.

06 / PHYSICAL-ASSET MAP

Six concrete scenarios test whether the abstraction survives contact with operations.

The repository turns six established monitoring practices into protocol hypotheses. Each one needs its own rubric, issuer qualification, calibration rules, privacy policy, and dispute process; the linked agencies describe the operating domain, not an endorsement of this protocol.

ScenarioPossible subjectIllustrative evidencePractice anchor
Medicine cold-room custodyRoom, freezer, shipment, or lotTemperature distribution, excursions, logger coverage, calibration, response timeWHO
Museum and archive preservationGallery, archive room, case, or zoneHumidity, stability, light, pollutants, vibration, uptime, conservation responseNPS
Grain silo stewardshipBin, silo, commodity lot, or seasonTemperature gradients, moisture, CO₂, aeration, hot spots, sampling coverageUSDA
Underground tank integrityTank, piping system, or inspection periodInventory variance, alarms, gauge status, sensor tests, calibration, acknowledgementEPA
Battery storage safetyRack, enclosure, site, or operating windowTemperature spread, vent gas, alarms, redundancy, isolation time, maintenanceDOE
Refrigerated food transportVehicle, container, route, handoff, or loadPre-cooling, time–temperature history, door events, uptime, cleaning, handoffFDA

The same page carries 18 adjacent explorations—bringing the displayed map to 27 concepts when combined with the original three templates and six detailed sensor cases. They are a product backlog, not shipped integrations.

HYPOTHESIS 01

Grant cohort progress

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 02

Vendor qualification

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 03

Learning cohorts

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 04

Community stewardship

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 05

Product readiness

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 06

Silo quality maps

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 07

Indoor-air stewardship

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 08

Seed-bank preservation

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 09

Concrete curing assurance

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 10

Transit asset condition

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 11

Art logistics custody

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 12

Water-storage stewardship

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 13

Renewable fleet care

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 14

Rental equipment care

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 15

Restoration nursery health

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 16

Critical spares readiness

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 17

Construction material custody

Needs domain-specific governance, evidence, calibration, privacy, and review.

HYPOTHESIS 18

Loss-prevention programs

Needs domain-specific governance, evidence, calibration, privacy, and review.

07 / WHAT THE PROGRAM ACTUALLY EXPOSES

The use cases changed; the bounded contract model did not.

The deployment delta does not introduce a sensor instruction or a new asset account. It gives the existing general-purpose scorecard program a real address. At the pinned commit, the IDL exposes 17 instructions, five account types, and 13 event types.

Growth v2 public interface, condensedRust + IDL summary · source
declare_id!("DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE");

17 instructions
  organization  create · pause · resume · retire
  authority     propose · cancel · accept
  rubric        create · activate
  subject       enroll · adopt · revoke · administrative revoke
  assessment    submit · dispute · correct
  migration     record legacy provenance

5 account types
  Organization · Rubric · ScoreProfile · Assessment · LegacyMigrationReceipt

13 emitted event types
  organization, authority, rubric, subject, assessment, and migration transitions
The domain-neutral assessment payloadRust · source
pub struct SubmitAssessmentArgs {
    pub sequence: u64,
    pub period_id: u64,
    pub period_start: i64,
    pub period_end: i64,
    pub evidence_commitment: [u8; 32],
    pub aggregates: Vec<PillarAggregateInput>,
}

pub struct PillarAggregateInput {
    pub pillar_id: [u8; 16],
    pub score_bps: u16,
    pub sample_count: u32,
    pub coverage_bps: u16,
}

The program accepts at most 16 pillars with up to eight increasing thresholds each. The browser's atomic local setup bridge still caps maximum-shaped rubrics at six because seven maximum-field pillars exceed Solana's 1,232-byte transaction packet. That is a bridge and transaction-composition limit, not a six-pillar contract limit.

Organization authority submits routine assessments. Subjects co-sign enrollment and rubric adoption, can dispute the latest result, and co-sign corrections. A correction creates a new assessment that supersedes the old one. The previous score, evidence, and period payload remains intact, while the target account's status changes to Corrected. The previous build note contains the full lifecycle and migration walkthrough.

08 / EXPERIMENTAL DEVNET IDENTITY

The candidate now has a public address, loader record, authority, and transaction trail.

On 31 August 2026, Growth v2 was deployed to Solana devnet at DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE. Its upgradeable-loader ProgramData account is AHUsoqpv7EPyTErV539kvUb9q9MS9ywuiu6aYFzCrD3i, and the initial upgrade and IDL authority is the single devnet-only wallet 7NrJdHqZY8KETyA46BBrngExHjFF4GPxboUskbGTz9P8.

Committed devnet deployment recordmanifest · source
Network              Solana devnet
Status               experimental-not-release-approved
Program              DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE
ProgramData          AHUsoqpv7EPyTErV539kvUb9q9MS9ywuiu6aYFzCrD3i
Upgrade + IDL auth   7NrJdHqZY8KETyA46BBrngExHjFF4GPxboUskbGTz9P8
Deploy slot          491039186
Deploy time          2026-08-31T17:16:54Z
Executable size      511,312 bytes
Executable SHA-256   c2fbee57bbfe9481e9c4348e0b88bc24c5dee51f3dd206c844b9bd8485029ff6

Current decision     NO-GO beyond experimental devnet deployment

The deployment transaction finalized in slot 491039186. The manifest records a 3,559,935,600-lamport rent-exempt balance for ProgramData executable storage and a 511,312-byte executable. A fresh read-only devnet RPC check during this article's publication still returned the expected executable flag, upgradeable-loader owner, ProgramData pointer, last-deploy slot, and authority.

Fresh public-account checkSolana JSON-RPC summary
Fresh read-only devnet RPC check during this publication pass

Program account
  executable    true
  owner         BPFLoaderUpgradeab1e11111111111111111111111
  ProgramData   AHUsoqpv7EPyTErV539kvUb9q9MS9ywuiu6aYFzCrD3i

ProgramData account
  last slot     491039186
  authority     7NrJdHqZY8KETyA46BBrngExHjFF4GPxboUskbGTz9P8
  account space 511,357 bytes (45-byte loader header + 511,312-byte program)

IDL account
  owner         DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE
  account space 9,282 bytes

Finalized program-owned account census
  IDL account   present
  business PDAs 0 Organization · 0 Rubric · 0 ScoreProfile
                0 Assessment · 0 LegacyMigrationReceipt

A finalized program-owned account census found only the Anchor IDL account—no live Organization, Rubric, ScoreProfile, Assessment, or LegacyMigrationReceipt state. The public use cases are therefore still product hypotheses and synthetic fixtures, not a hidden set of devnet customer records.

09 / EXECUTABLE PROOF

Fetched bytes match the built bytes; source provenance is still incomplete.

What the devnet proof chain establishesThe deployment closed the placeholder-identity gap and established byte and IDL equality checks. It did not establish clean-source provenance: both verifiable builds came from one operator and a dirty worktree based on the earlier local-lab commit.

The candidate was built twice with Anchor 0.31.1 and Solana 2.3.12 in the pinned verifiable-build image. Both same-operator runs produced the same SHA-256. A dump of the finalized devnet executable produced that hash again, and Anchor's skip-build verification reported the program verified.

Build and deployed-byte evidenceshell + manifest · source
$ anchor build --verifiable --solana-version 2.3.12
# image: solanafoundation/anchor:v0.31.1
# two same-operator runs produced identical 511,312-byte artifacts

$ anchor verify --skip-build DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE
# recorded result: program is verified

local artifact SHA-256
  c2fbee57bbfe9481e9c4348e0b88bc24c5dee51f3dd206c844b9bd8485029ff6
finalized on-chain dump SHA-256
  c2fbee57bbfe9481e9c4348e0b88bc24c5dee51f3dd206c844b9bd8485029ff6

Important provenance boundary:
  baseCommit             d944ee75cbb06d6eabdbd7075a88a15bb15e5936
  worktreeCleanAtBuild   false
  independent operators false

This proves a useful equality: the recorded artifact and deployed executable are the same bytes. It does not prove that those bytes came from a clean, signed release commit. The manifest explicitly records a dirty worktree based on d944ee7, and both builds were run by one operator. Calling this “independently reproducible” would erase the most important remaining provenance gap.

10 / PUBLISHED INTERFACE

The IDL was written to devnet and compared semantically, not by fragile formatting.

The Anchor IDL account at Da3msDhRT1ZHTEcG7HZMy1bhR8VN7ARWDKtWY9dfbJvt is owned by the Growth v2 program and governed by the same initial authority. Publishing required nine chronological write transactions; all nine signatures are recorded in the manifest.

Committed and fetched IDL comparisonmanifest · source
IDL account           Da3msDhRT1ZHTEcG7HZMy1bhR8VN7ARWDKtWY9dfbJvt
IDL authority         7NrJdHqZY8KETyA46BBrngExHjFF4GPxboUskbGTz9P8
Account owner         DA9eu83HutyKB75K7gcPvAGTMH53HmcXN5Kg9Km8DAVE
Account space         9,282 bytes
Compressed data       4,619 bytes

committed file SHA-256
  c1b29996021bebd745cddeb32916d8297f80d1028df8afe7fd0d27b9bab48929
fetched raw SHA-256
  6544b1bda637eb7b24b9d5dd433b1b7a1758ab118195fc9ab8f2ccf2b2f43e38
stable normalized SHA-256 (both)
  e67007882e851569801710737f2f84e1e0ea48d64192627ad095a8a510b599ce

semanticMatch         true
Normalization         recursively sort object keys, then JSON.stringify without newline

The fetched raw file and committed file have different byte hashes because Anchor changes object-key order and omits the final newline. Recursively sorting object keys and encoding both as compact JSON produces the same stable hash. That makes the claim precise: the published interface is semantically identical, not raw-file identical.

11 / THE UI STILL FAILS CLOSED

The program is on devnet. The hosted playground still cannot touch it.

Deployment is not the same as a live productFour environments answer four different questions. The hosted product story is synthetic, localhost proves real instruction execution, devnet holds the candidate program and IDL without a live client, and mainnet remains outside this release.

The owner-only website can model organizations, rubrics, enrollment, scoring, disputes, corrections, pausing, retirement, revocation, expiry, accounts, PDAs, events, and an unsigned devnet replay plan. Its normal playground runs entirely in browser memory underconnect-src 'none' and has no RPC, wallet, signing, sending, automatic persistence, remote storage, or import path.

Real browser-initiated writes remain confined to the separate localhost lab with ephemeral signers and an isolated validator. The new public program address therefore supports verification and future integration work; it does not quietly turn the existing website into a live devnet application.

12 / WHAT BROKE OR ALMOST BECAME A FALSE CLAIM

The hardest bugs were mismatches between evidence and language.

01

A real address had to replace the provisional identity everywhere

Source, Anchor configuration, IDL, public website artifact, local bridge, tests, and documentation all declared the old local-only identity. The release changes them together so clients cannot silently derive accounts for a different program.

02

Two matching builds were tempting to call reproducible

The byte result is strong, but both runs came from one operator and a dirty worktree. The manifest now preserves those qualifiers beside the hashes instead of turning same-machine repeatability into independent provenance.

03

A raw IDL hash reported a mismatch that was only serialization

The fetched IDL reordered keys and dropped the trailing newline. Stable recursive key sorting separated semantic equality from raw-file equality and retained both hashes for audit.

04

Adding sensors could have implied that the chain validates hardware

The architecture now draws the off-chain adapter explicitly. Growth v2 accepts an issuer-signed aggregate and commitment; it neither reads a sensor nor proves its calibration, completeness, or honesty.

05

Deployment created pressure to unlock the hosted playground

The UI remains network-free. Public program verification, public account exploration, and a transaction-capable product are separate release decisions with different evidence requirements.

13 / VERIFIED RESULT

The repository, local harness, and public accounts support different parts of the claim.

17program instructions
511,312deployed program bytes
27displayed use-case concepts
NO-GObeyond experimental devnet
Evidence surfaceResultScope
Rust unit logic10 / 10Repository manifest; rerun at the pinned public commit
Validator lifecycle + planner12 / 12Eight program cases plus four included migration-planner cases
Loopback bridge boundaries4 / 4RPC/run-ID validation, artifact identity, and six/seven-pillar packet boundaries
Website boundaries15 / 15One fixture test plus fourteen playground and route-isolation cases
Verifiable program builds2 matchingSame operator and dirty source worktree; not independent reproduction
Devnet program + IDLPresentFresh read-only account check; manifest records byte and semantic equality
Fresh local verification lanesshell
$ cd v2
$ cargo +1.92.0 test --locked --lib
# 10 Rust tests

$ yarn idl:check && yarn typecheck
$ yarn test:local
# 12 total: 8 lifecycle + 4 migration-planner cases

$ node --test tests/localnet-bridge.test.mjs
# 4 bridge boundary tests

$ cd ../website
$ npm run test:fixtures
$ npm run test:playground
# 1 fixture boundary + 14 playground cases

$ npm run lint && npm run build
# lint and application prerender/build

The dated manifest additionally records a matching on-chain program dump, a semantic IDL match, a passing IDL-current check, and a passing Anchor skip-build verification. The fresh RPC read verifies current public account identity; it does not rerun deployment, mutate authority, or create devnet fixture accounts.

14 / CURRENT TRUTH

Experimental deployment is complete. Production evidence is not.

GateCurrent stateRequired evidence
Authority custodyProgram and IDL remain controlled by one devnet-only key.Transfer both to an approved hardware-backed multisig under a reviewed policy.
Build provenanceTwo same-operator artifacts match, but the build worktree was dirty.Rebuild a signed clean commit independently and reconcile every byte and client hash.
Security reviewInternal reviews exist; no external smart-contract audit approves this release.Complete external review, remediate findings, and publish the exact audited pin.
Adversarial devnet behaviorThe candidate is deployed; a full malicious lifecycle and migration campaign is not.Exercise bad owners, PDAs, signers, receipts, expiry, terminality, and rollback.
Indexer reconciliationThere is no approved finalized-account indexer or fork-aware reconciler.Treat events as hints, rebuild from canonical accounts, and prove missed-log recovery.
Live product pathThe hosted simulator cannot read RPC, connect a wallet, sign, or send.Enable a separately labeled devnet client only after custody and reconciliation gates.
Capacity and soakNo retained throughput, compute-budget, concurrency, or long-running soak report exists.Measure realistic rubric sizes and write patterns; retain machine-readable results.
Legacy incidentProvider revocation, authority recovery, and Git-history decisions remain owner work.Close the containment record without upgrading either v1 deployment in place.

No production capacity claim is possible yet. There is no retained compute-unit profile, realistic concurrent writer test, RPC-provider failure test, indexer recovery run, or long-duration soak artifact. Local correctness counts and a successful deployment are not throughput evidence.

Public-chain assessments would make subject wallet keys, issuer relationships, timestamps, periods, per-pillar aggregates, sample counts, coverage, disputes, corrections, revocation, and history linkable. A commitment keeps raw evidence out of the account only when the producer uses a strong, salted canonical scheme and a defensible disclosure policy.

15 / FILE GUIDE

The repository separates implementation, deployment evidence, product hypotheses, and policy.

Repository map at the pinned committext · source
growth-program/
├── docs/
│   └── EXECUTION_STATUS.md       # current decision and open gates
├── security/                     # pre-release and playground reviews
├── snapshots/2026-08-30/        # privacy-minimized legacy evidence
├── v2/
│   ├── programs/growth_v2/src/   # Anchor program
│   ├── idl/                      # canonical public interface + hash
│   ├── tests/                    # lifecycle, migration, bridge
│   ├── docs/                     # security, migration, deployment
│   └── deployments/devnet/
│       └── 2026-08-31/           # immutable manifest + checksum
└── website/
    ├── app/use-cases/            # 27 concepts + research anchors
    ├── app/playground/           # browser-memory simulator
    └── app/playground/localnet/  # isolated real-validator lab

PRODUCT MAP

Use-case page

Three core templates, six sensor scenarios, 18 hypotheses, and eight research anchors.

INTERFACE

Canonical IDL

Current program address, instructions, accounts, events, types, and errors.

DECISION

Execution status

What changed, what remains owner work, and why the live explorer is still NO-GO.

16 / WHAT IS NEXT

The next milestone should make this deployment governable, reproducible, and observable.

  1. 01

    Close authority custody. Move program and IDL control from the single devnet key to an approved hardware-backed multisig with an upgrade and emergency policy.

  2. 02

    Reproduce from a clean signed commit. Have a second operator build independently, compare the executable, IDL, generated client, lockfiles, and deployed bytes, and retain the attestation.

  3. 03

    Run adversarial devnet lifecycles. Use synthetic accounts to exercise authority rotation, expiry, disputes, corrections, revocation, retirement, migrations, duplicate receipts, malformed owners, and rollback.

  4. 04

    Build a reconciled read path. Index finalized canonical accounts, survive forks and missed events, and demonstrate a complete rebuild before offering a live explorer.

  5. 05

    Specify one sensor adapter deeply. Define canonical evidence, salts, calibration, signer provenance, missing-data rules, retention, disclosure, appeals, and issuer liability for one bounded pilot.

  6. 06

    Retain performance evidence. Measure compute units, transaction sizes, realistic rubric shapes, concurrent writers, RPC failures, indexer lag, and soak behavior without presenting a toy run as capacity.

17 / EVIDENCE LEDGER

The public repository and chain state carry the claims; the build conversation supplies chronology.

All implementation, use-case, and deployment claims above point to public commit 3497678cee2271c84172c41c62788806373bea4c. The development conversation was reviewed to reconstruct intent and order of work, but only claims independently supported by public evidence are included.

PUBLISHED INTERFACE

Anchor IDL account

Program-owned interface account with semantic-match evidence in the manifest.

CONTINUE EXPLORING

Inspect the devnet candidate—and every production claim it still withholds.

The pinned public commit contains the expanded sensor-custody product map, exact program and IDL identities, immutable deployment manifest, and explicit NO-GO gates described here.