§ Docs

Protocol and reference

How Titer canonicalizes a sequence, grades the identity, hashes a mass spectrum, anchors a receipt on chain, manages vendor bonds, runs disputes, and aggregates cohort outcomes.

version
v0.1
schema
titer.commit.v1 · titer.ms.v1 · titer.coa.v1
chain
Solana mainnet-beta
storage
Arweave (Irys)
§ 01

Overview

Titer takes a single-letter amino acid sequence and returns a typed dossier:

  • Identity · canonical sequence, SHA-256 fingerprint, grade A→X, source citation
  • Structure · AlphaFold v6, ESMFold or PEP-FOLD4 model routed by length
  • Mechanism · ChEMBL + GtoPdb + OpenTargets, synthesised by gpt-5-2 with cited claims re-verified against their sources
  • Batch + COA · vendor bond status, lab-signed COA hash, mass-spec hash binding
  • Receipt · two Solana memos (commit + reveal), Arweave CID for the full dossier

The free tier uses a Titer paymaster to sponsor on-chain writes. Connect a wallet to self-pay, save lookup history, or unlock the cohort outcome layer.

§ 02

Pipeline

Five stages, p50 1.4s for the identity card and p95 4.8s for the full dossier. Identical canonical sequences hit the cache and short-circuit any stage that has already resolved.

01 · canonicalize       parse → strip whitespace/numbering →
                        normalize (U→C, O→K) → SHA-256
02 · identity           seed table → UniProt PS exact (≥7aa) →
                        BLAST homolog (e ≤ 1e-10) → grade
03 · structure          if length < 40:        PEP-FOLD4
                        if 40-400 + UniProt:   AlphaFold DB v6
                        if 40-400 + no hit:    ESMFold
                        if length > 400:       AlphaFold DB only
04 · batch + COA        vendor bond status · lab-signed COA hash
                        mass-spec hash binding (titer.ms.v1)
05 · receipt            commit memo (~400ms confirmed)
                        dossier upload to Arweave
                        reveal memo (salt + result CID + result hash)
§ 03

Grading rubric

Each dossier carries one of five letter grades. The grade encodes confidence in the sequence identity only. It does not encode safety, efficacy, or vendor quality (those are separate primitives).

GradeThresholdMeaning
ASeed table or UniProt PS ≥ 99%Exact match
BBLAST ≥ 90% identityClose homolog
CBLAST ≥ 70% identityDistant homolog
Dno reliable hitNovel sequence
Xfailed canonicalizationInvalid input
§ 04

Commit / Reveal

Each lookup produces two transactions on Solana mainnet-beta. The commit lands at confirmed in ~400ms, before any third-party API runs. The reveal lands after the dossier is uploaded to Arweave.

// commit memo
titer:commit:v1:<sha256(input || salt || requested_at)>:<requested_at>

// reveal memo
titer:reveal:v1:<commit_tx_sig>:<salt>:<result_cid>:<result_hash>

The commit hash is computed over a canonical JSON message that includes the input, the optional target class, the schema string "titer.commit.v1", the salt, and the requested-at timestamp. Anyone with the salt can re-hash and verify the run was honest end-to-end without trusting Titer’s servers.

§ 05

Mass-spec hash

The lab uploads the raw spectrum (mzML / mzXML). Titer computes a content-stable hash by binning peaks at 0.01 Da, normalizing to the max peak, dropping anything below 0.1% relative intensity, and SHA-256 over the sorted bin:intensity entries.

schema     titer.ms.v1
binning    bin = round(mz / 0.01)
norm       intensity / max_intensity
threshold  0.001  (drop below 0.1% relative)
canonical  sorted "bin:intensity" entries, comma-joined
hash       sha256(canonical)
memo       titer:ms:v1:<batch_id>:<sha256>:<lab_id>:<acquired_at>
fallback   cosine similarity over binned vectors when hashes differ

Hardware-to-hardware drift below the bin width is absorbed. Different compounds on the same instrument do not collide. When two labs scan the same compound on different instruments, the cosine fallback (over the same binned vectors) carries the signal.

§ 06

Vendor bond

Vendors stake $TITER to list. Bond size scales with cumulative batch GMV and is multiplied by the vendor’s historical incident rate (capped at 4×).

required_bond_lamports(gmv, incident_rate):
    base       = ceil(gmv * 0.05)
    multiplier = 1 + min(incident_rate * 4, 3)
    return max(5_000_000_000, ceil(base * multiplier))   // floor 5 SOL

insurance_premium_lamports(vial_price, quality_score):
    base     = ceil(vial_price * 0.02)                   // 2% default
    discount = clamp(quality_score, 0, 0.5)
    return ceil(base * (1 - discount))
§ 07

Disputes

A buyer may file a dispute against a batch with: (i) an independent mass-spec hash from any partner lab, (ii) the cosine similarity to the vendor-claimed reference spectrum, (iii) photo evidence, (iv) a free-form description.

Filed disputes lock the bond pending arbitration. Three token-staked arbitrators are randomly selected; majority decision settles the case. Slashes pay out to impacted buyers from the same pool. The full evidence trail is committed on chain.

§ 08

Cohort layer

Buyers log N-of-1 outcomes against a verified batch ID. Logs are pseudonymous and processed in the browser by default · biomarker uploads stay in encrypted IndexedDB unless the user opts in to aggregate publication.

N (logs per peptide)Cohort gradeReading
≥ 1000AControlled signal
≥ 200BPreliminary
≥ 50CDirectional
< 50DInsufficient evidence

Tracked metrics include subjective efficacy, side-effect severity, recovery time, biomarkers (hsCRP, HbA1c, IGF-1, free T, SHBG), and body composition. The full schema is in src/lib/cohort.ts.

§ 09

Data sources

SourceUseLicense
UniProtIdentity matchCC-BY 4.0
AlphaFold DB v6Structure (40–400aa with UniProt hit)CC-BY 4.0
ESMFoldStructure (40–400aa, no UniProt hit)MIT
PEP-FOLD4Structure (< 40aa)Academic free
ChEMBL release 35Mechanism, ligand bindingCC-BY 4.0
GtoPdb (IUPHAR)Mechanism, ligand–receptor mapCC-BY 4.0
OpenTargetsMechanism, disease associationCC0
ReactomePathway annotationCC-BY 4.0
PubMed (E-utilities)CitationsPublic
dbSNP / gnomADVariant frequencyPublic
§ 10

API

MethodPathPurpose
POST/api/lookupRun a sequence lookup. Returns the typed dossier + commit memo.
POST/api/verifySubmit a peak list, get the spectrum hash + binding memo.
POST/api/commitAnchor a commit memo to Solana (paymaster-sponsored on free tier).
GET/api/batch/:idFetch a batch by ID · bond, COA, MS hash, dispute status.
GET/api/vendor/:idFetch vendor profile · bond, incident rate, quality score.
POST/api/cohort/logSubmit an N-of-1 outcome log (wallet-signed).
GET/api/cohort/:peptideAggregate cohort rollup for a peptide.
§ 11

Roadmap

PhaseStatusScope
1 · Lookup coreshippedCanonicalize · UniProt · AlphaFold · grading · commit/reveal
2 · MS hash + batchesin progressLab signing · vendor bonds · batch ledger · embed badge
3 · Cohort layernextN-of-1 logging · cohort grades · biomarker schema
4 · DisputesnextToken-staked arbitration · recall coordination
5 · ReasoningnextCited-claim verifier · reproducibility budget · adversarial re-runs
6 · PrivacylaterZK researcher credentials · Arcium MXE for private BLAST