four bored apes against a cyberpunk skyline

⌁ on-chain ⌁ imperfect ⌁ live

slapes_

a tiny image model — small enough to live in contract bytecode — tries to reconstruct each bored ape from a 10-byte embedding. it gets close. it never gets it right. the gap is the slapes.

SUPPLY 1024FULLY ONCHAINETH MAINNETFREE MINT*

⌁ 01 / preview

three views.
one ape.

slapes
original
render

two reconstructions of the same ape, both wrong in their own way. in between: the canonical ape the model was trying to reach.

⌁ mint

mint a slape.

0/1024

PRICE

FREE

MAX/WALLET

5

1

* default mintPrice = 0; owner can adjust before opening public mint.

⌁ 02 / the model

argmax of a dot product.

slot[token, p]   = argmax_k dot( embed[token], head[p, k] )
palette_idx      = candidates[p, slot]
rgba             = PALETTE_RGBA[palette_idx]

no decoder mlp. no attention. no fp16. each pixel has its own vocab of K=18 candidate colors and a learned head decides which wins.

VOCAB

1024

EMBED

10

CANDIDATES

K=18

PALETTE

256

⌁ 03 / live slapes

zero bytes uploaded.
recomputed on every read.

the slapes count is not stored. every metadata read recomputes the mask live by comparing the model’s 576 palette indexes to the 2,304 RGBA bytes pulled from the canonical ape.

for pixel in 0..576:
    color   = PALETTE_RGBA[ generated[pixel] ]
    differs = color != originalRgba[pixel*4 : pixel*4+4]
    if differs:
        mask[pixel/8] |= 1 << (7 - pixel%8)
        count += 1

slop = count
tier = slop / 50           // floor

⌁ 04 / merge lab

two same-level apes
fuse into one.

the merge manager loads both 10-byte embeddings, takes the signed int8 element-wise mean, packs the result, increments the survivor’s level, and burns the donor. the survivor’s anchor ape doesn’t change — so as you merge, the render drifts and the slapes count usually goes up.

⌁ TRY THE LAB ⌁

⌁ 05 / contracts

five contracts. four jobs. one differentiator.

⌁ NFT

Slapes

ERC-721 shell. Mint, supply, ownership, blockhash reveal.

⌁ MODEL

SlapesImageModel

Tiny candidate-palette inference. Lockable post-deploy.

⌁ MERGE

SlapesMergeManager

Same-level merge. Burns donor. SLAPE-gated.

⌁ RENDER

SlapesRenderer

tokenURI builder. Computes slapes count live every read.

⌁ DATA

BoredApesData

On-chain mirror of 1024 apes at 24×24. The differentiator.

⌁ TOKEN

Slap (SLAPE)

ERC-20. Burned on every merge. 1B supply, single-sided V4 LP at launch.