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 broadcasting

STEP 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