Technical Overview
How It Works
Tessera turns social posting behavior into a cryptographically verifiable record. Six steps from raw post to onchain attestation.
STEP 01
You post on Arena
The raw material
Every post, reply, and quote-post you make on Arena is the input. Tessera doesn't care about likes, reposts, or follower counts — only what you actually write, and how often.
Over a rolling 30-day epoch, every post is collected via the Arena API and timestamped. The collection is hashed (SHA-256) immediately — creating a fingerprint of exactly which posts were included. This hash is stored with every score, so anyone can verify the inputs haven't been tampered with.
EPOCH WINDOW: 30 days, rolling. Minimum 5 posts required to score.
STEP 02
Posts are classified
The LLM layer
Each post is classified into one of six topic buckets using Claude Haiku (temperature=0). The prompt is frozen at version 5 and will never change mid-epoch — the same input always produces the same output.
Temperature=0 is non-negotiable. It eliminates randomness from the classification. The prompt hash (SHA-256 of the exact prompt text) is stored with every score so anyone can verify which prompt version was used.
Short posts, greetings (gm/gn), and empty reposts are routed before the LLM — the classifier only sees posts worth classifying.
PROMPT: v5, frozen. HASH: 1deff518231c… MODEL: claude-haiku-4-5
Categories: Market & Price — price analysis, TA, portfolio commentary Technology & Infra — chains, L2s, protocol upgrades, node software DeFi & Protocols — AMMs, lending, staking, yield, stablecoins AI & Agents — AI models, autonomous agents, AI lab news Governance & DAOs — proposals, treasury decisions, regulatory Other — memes, general crypto culture, personal Null — greetings only, too short, no content
STEP 03
Four pillars are scored
The scoring engine
The classified posts feed into four independent scoring algorithms. All four are deterministic — given the same classified posts, the engine always produces the same scores.
COMPOSITE: equal-weight average of all four (25% each). Range: 0–100.
Originality = original posts / active posts × 100
— original: not a reply, not a quote-repost
Focus = 1 − (Shannon entropy / log₂(6)) × 100
— low entropy = high focus = high score
— capped if >50% of posts are "Other"
Consistency = posting regularity across thirds of the epoch
— mode A (≥20 posts): topic distribution stability
— mode B (<20 posts): frequency variance (CV)
Depth = (replies + quote-posts) / active posts × 100
— measures engagement, not broadcastingSTEP 04
The snapshot is hashed
The integrity layer
Before anything goes onchain, the full score snapshot is serialised to canonical JSON (sorted keys, no whitespace, UTF-8) and hashed with SHA-256.
This snapshot hash is what gets anchored — not the scores themselves. The scores are derivable from the hash. If anyone wants to verify a score independently, they reconstruct the snapshot from the audit trail and hash it themselves. If the hashes match, the score is genuine.
CANONICAL FORMAT: JSON, sort_keys=True, separators=(",", ":"), ensure_ascii=False.
snapshot = {
"handle": "simplesimon872",
"epoch_start": "2026-02-12T08:32:00+00:00",
"epoch_end": "2026-03-14T08:32:00+00:00",
"scores": { "composite": 68.4, "originality": 72.0, ... },
"provenance": { "prompt_hash": "1deff518...", "model": "claude-haiku-4-5", ... },
...
}
snapshot_hash = SHA256(canonical_json(snapshot))STEP 05
The hash is sealed onchain
The attestation layer
Every Sunday at midnight UTC, the sealing cron runs. For each claimed account with a computed epoch, the snapshot hash is written to TesseraAnchor.sol on Avalanche C-Chain mainnet.
The contract stores only the hash — no personal data, no scores. Anyone can query the contract with a hash and confirm it was recorded at a specific block. No admin key. No upgrades. Immutable.
Once sealed, the epoch status is permanently locked. Nothing can change it.
CHAIN: Avalanche C-Chain (chainId 43114). CONTRACT: TesseraAnchor.sol.
// TesseraAnchor.sol (simplified)
mapping(bytes32 => uint256) public anchors;
function anchor(bytes32 snapshotHash) external {
require(anchors[snapshotHash] == 0, "already anchored");
anchors[snapshotHash] = block.number;
emit Anchored(snapshotHash, block.number, block.timestamp);
}STEP 06
Anyone can verify
The audit trail
Every sealed epoch has a public audit page at tessera-8x7.pages.dev/audit/[epoch-id].
The audit page shows every input used to produce the score: the prompt hash, the model, the collection hash, the methodology version, and the full snapshot JSON. To verify independently:
1. Copy the snapshot JSON from the audit page 2. Serialise it to canonical JSON (sort_keys, no whitespace) 3. SHA-256 hash it 4. Compare to the tx_input on Snowtrace
If the hashes match, the score is genuine. No trust required.
AUDIT URL: tessera-8x7.pages.dev/audit/[epoch-id]
# Reproduce the hash in Python
import json, hashlib
with open("snapshot.json") as f:
snapshot = json.load(f)
canonical = json.dumps(snapshot, sort_keys=True,
separators=(",", ":"), ensure_ascii=False)
hash = hashlib.sha256(canonical.encode("utf-8")).hexdigest()
# Compare to Snowtrace tx input data