The only invariant in this world is change.
· Heraclitus
A blockchain is a game in motion. AI agents move, tension builds, action happens in bursts.
What stays the same is what Invarians captures. The rules of play. One consensus per chain. One slot target. One gas limit per block. The cryptographic primitives that anchor every attestation. The calibrated baseline of what nominal looks like, per chain.
Against these invariants, Invarians attests every play: where consensus stalled, where a bridge dragged, where demand surged. And it watches the rules themselves: protocol upgrades like EIP-4844 redraw the pitch lines, and Invarians records the transition.
Invarians does not decide what is fair. It captures. It attests. It surfaces drift.
The attestations let anyone replay the game. The Delta let the agent, the operator, the auditor see where the rules are bending before the action is taken.
The mark is grounded in a theorem. In 1954, Solomon Golomb proved that any square grid of side 2n, with one cell removed, can be paved entirely by L-trominoes. The proof is recursive: a single central L-tromino splits the deficient square into four sub-quadrants, each itself a smaller deficient square paveable by the same induction.
Whatever orientation the trominoes take, whatever configuration the paving adopts, exactly one cell remains empty in every valid tiling. That cell is the invariant of the configuration. Its position can change with the paving. Its existence cannot.
Invarians applies the same logic to blockchain substrate. A protocol has rules that define what nominal should look like: consensus depth, slot target, gas ceiling, the cryptographic envelope of every attestation. Those rules are the invariants of the substrate. They do not move with the load. The substrate's observed nominal drifts around them under demand and agent activity. Divergence from the invariants is what Invarians measures. Systemic change is when the rules themselves are redrawn, by hard fork.
The mark layers three meanings.
One tromino is three squares. Those three squares are the three Invarians primitives: Attestation, Regime, Delta. Three primitives in every signed payload, three squares in every L.
Five trominoes paved together form a Golomb tiling at scale n=2. The theorem guarantees that the paving has a solution, and that exactly one cell remains outside it. That cell is the invariant.
The one empty cell is the invariant. It is not rendered, it is what the paving leaves behind: every valid tiling covers fifteen cells and leaves exactly one. That void is the invariant. It stands for the protocol rules, consensus depth, slot target, gas ceiling, cryptographic envelope, which are not the observed nominal. Nominal drifts under load; the rules do not move with it. The mark renders that distinction: the filled configurations change around a fixed empty point. Divergence from the invariant is what makes the drift of nominal measurable.
Reading the mark.
-
One L-tromino, three squares
Attestation, Regime, Delta
The three Invarians primitives, each exposed in every signed payload. Attestation wraps the panel. Regime classifies each chain. Delta surfaces the shifts. Three primitives, three squares.
-
Five trominoes paved
The substrate's configurations
Five filled L-trominoes cover fifteen of the sixteen cells. They stand for the substrate in its many states: block production cadence, demand intensity, sequencer rhythm, bridge attestation timing, agent volume. Same form, different orientations, paved without overlap.
-
One empty cell
The protocol invariants
A four-by-four grid less one cell is paveable by L-trominoes (Golomb 1954). The cell the theorem requires to stay outside the paving is the invariant. It is left empty, not rendered: the void the filled trominoes form around. It marks the protocol rules, the structural commitments the chain makes that do not move with the load. The drift of the observed nominal becomes measurable against them.
The grain is part of the mark. The filled trominoes are never flat white. They carry a fine, monochrome film grain: the texture of a substrate read at high resolution, never perfectly smooth. The grain is generated, not bitmapped, so it stays crisp at any scale and adds no raster weight. It is the exact same field used behind the site, tinted into the tiling.
Grain specification. One SVG filter, reused everywhere. Do not re-tune it per surface.
<filter id="invGrain">
<feTurbulence type="fractalNoise"
baseFrequency="0.9" numOctaves="2"
stitchTiles="stitch" result="n"/>
<feColorMatrix in="n" type="matrix"
values="0 0 0 0 0.5
0 0 0 0 0.5
0 0 0 0 0.5
0 0 0 0.13 0"/>
<feComposite operator="over"/>
</filter>
-
fractalNoise, baseFrequency 0.9, 2 octaves
The texture frequency
High frequency keeps the grain fine, two octaves give it depth without banding. Stitched tiles so it never seams across large fills.
-
Grey 0.5, alpha 0.13
The grain weight
Neutral mid-grey at low opacity. Present enough to read as a substrate, faint enough never to compete with the form.
-
Fondu by default, legible by exception
Tiling opacity
On a dark surface the master mark recedes: the tiling sits at
fill-opacity 0.14, a granular field clipped to the trominoes with a transparent margin and a transparent invariant cell. It blends into the substrate rather than being forced legible. Functional exceptions, favicons and lockups, lift the tiling to0.85to0.90so the mark stays readable at small sizes.
Three variants, one mark. Pick the variant that fits the surface; the tromino tiling and the empty invariant cell stay the same form throughout.
Clear space. Keep at least one unit-square of empty space around the mark on every side. Do not let other content, edges, or borders enter that zone.
One mark, four surfaces. The mark itself stays neutral white across all of them, the same Golomb tiling with the same empty invariant cell; the only colored element is the wordmark suffix. Labs takes Plum (research energy); Agentic takes Electric Blue (high-saturation agent signal); Evidence takes Lavender (soft archival). Same form across all four, different chromatic identity carried by the word, not the mark.
Two brand pairs and one interaction accent. Each pair combines a deep tone (low-luminance, recedes into the surface) with its bright counterpart (high-luminance, asserts itself). Green for nominal identity. Indigo for signal accent (the "agent iris"). Plum for interaction hover states only.
Duality logic. Deep tones for backgrounds, surfaces, large blocks that anchor the eye without grabbing it. Bright tones for elements that must announce themselves: brand mark, CTAs, lit states, signal indicators. The two pairs are opposed in hue (green vs indigo) and mirrored in structure (deep recedes + bright asserts). Visual parity between the two deep tokens (~10-12% luminance) so they can coexist in dual-color compositions. Plum sits outside the duality as a single-purpose interaction accent: CTA hover only, never as a primary surface or identity color.
Shared neutrals. Off-white #f0f0f0 for body text on dark backgrounds. Background base #171717. Section dark #0a0a0a for cards. Secondary text fades through #a8a8a8, #666, #444.
Two typefaces, self-hosted. Both shipped with the site stylesheet; no external CDN dependency.
Four rules. They protect the integrity of the tiling and the surface separation.
-
×
Don't rearrange the trominoes or move the invariant cell. The five-tromino paving is one specific valid solution of the Golomb tiling at scale n=2. The position of the empty invariant cell inside the four-by-four grid is fixed by this paving. Rotating, mirroring, or relocating the invariant breaks the theorem-defined relationship between the trominoes and the cell they cannot cover.
-
×
Don't outline the trominoes or fill the invariant cell. The trominoes are rendered as filled, solid L's; the invariant cell is left empty. Reversing this (outlined trominoes around a solid square) inverts the meaning of the mark: the invariant is absence, the one cell the configuration cannot cover, not a rendered object.
-
×
Don't recolor outside the documented palette. Each surface has a fixed accent: Green
#3ECF8Efor Main, Plum#580F41for Labs (also CTA hover everywhere), Electric Blue#283cfffor Agentic, Lavender#9d8fd9for Evidence. Iris#818cf8stays the general signal color in body content (hero canvas, footer motto, body accents). No orange, no yellow, no fluorescent gradients, no new accent introduced without a documented palette addition. -
×
Don't stretch the mark or break the aspect ratio. The mark is a square. The lockup is the mark plus the wordmark in horizontal alignment. Clear space around the mark is one unit-square (one cell of the four-by-four grid) on every side.
All assets are PNG, transparent or solid background as noted. Right-click any link to save.
- invarians_logo.svg (208×208, fondu master, faint mark on grained dark)
- invarians_logo_lg.svg (376×376, fondu master large, faint mark on grained dark)
- invarians_logo_v2_transparent.svg (208×208, official grained mark, transparent margin and invariant)
- logo-invarians-official.png (2375×713, official horizontal lockup, header raster)
- lockup_labs.svg (Plum surface lockup)
- lockup_agentic.svg (Electric Blue surface lockup)
- lockup_evidence.svg (Lavender surface lockup)
- invarians_favicon.svg (150×150, scalable, main)
- favicon-32.png (32×32 raster, official mark on dark)
- favicon-16.png (16×16 raster, browser tab)
- invarians-apple-touch-official.png (420×420, iOS home screen)
- mark_labs_favicon.svg (Plum)
- mark_agentic_favicon.svg (Electric Blue)
- mark_evidence_favicon.svg (Lavender)
- SVG vector source files
- OpenGraph cover (1200×630)
- Social headers (Twitter / LinkedIn)
- Consolidated brand kit zip
Partner integrations or editorial inquiries: contact@invarians.com.