I want to build systems that build themselves, accelerating and expanding the total energy of our light-cone.
my interests and experiences: full stack development, AI post-training, eval design, RSI, GPU kernel optimization, ZK-STARK provers, cryptography, steganography, audio production, mixing and mastering,
lasers and optics,
b.s.e. in biomedical engineering from Duke University ( bioelectricity and imaging systems)
zkpow and aipow prover written from scratch in cuda. zk-stark: ~700 proofs/sec on a 5090. ai-pow won block 130,042 + more
ai-pow fleet · 24× rtx 5090 · won block 130,042 and more
the problem
nockchain is hybrid proof-of-work. two independent puzzles currently produce blocks, and they do not share a proving loop. the protocol is built so the work can eventually be a proof of any computation for a zkVM.
zk blocks are won by producing a zk-stark proof of a nock vm execution trace bound to the block commitment and nonce, then hashing selected proof commitments with tip5. if that digest meets the zk difficulty target, it is a zk block.
ai blocks are won by a different computation: integer matrix multiplication. a prepared header binds noised matrices and commitment roots; each (t_rows, t_cols) pair is a ticket ordinal; the gpu searches the full grid; the jackpot must meet a separate difficulty target. if it does, it is an ai-pow block.
what nock is
nock is a minimal combinator calculus that serves as a foundation for an ISA and language over nouns, as described below. hoon, a system level programming language, compiles to nock like other higher-level languages compile to machine code.
data
A noun is an atom or a cell. An atom is a natural
number. A cell is an ordered pair of nouns.
noun: [1 [2 3]]
cell
/ \
atom 1 cell
/ \
atom 2 atom 3
every nock program and value is a noun. atoms are leaves; cells are ordered binary branches whose left and right children are the head and tail. nock therefore operates entirely on binary trees.
semantics
Reduce by the first matching pattern; variables match any noun.
nock 4K opcodes
nock(a) *a
[a b c] [a [b c]]
?[a b] 0
?a 1
+[a b] +[a b]
+a 1 + a
=[a a] 0
=[a b] 1
/[1 a] a
/[2 a b] a
/[3 a b] b
/[(a + a) b] /[2 /[a b]]
/[(a + a + 1) b] /[3 /[a b]]
/a /a
#[1 a b] a
#[(a + a) b c] #[a [b /[(a + a + 1) c]] c]
#[(a + a + 1) b c] #[a [/[(a + a) c] b] c]
#a #a
*[a [b c] d] [*[a b c] *[a d]]
*[a 0 b] /[b a]
*[a 1 b] b
*[a 2 b c] *[*[a b] *[a c]]
*[a 3 b] ?*[a b]
*[a 4 b] +*[a b]
*[a 5 b c] =[*[a b] *[a c]]
*[a 6 b c d] *[a *[[c d] 0 *[[2 3] 0 *[a 4 4 b]]]]
*[a 7 b c] *[*[a b] c]
*[a 8 b c] *[[*[a b] a] c]
*[a 9 b c] *[*[a c] 2 [0 1] 0 b]
*[a 10 [b c] d] #[b *[a c] *[a d]]
*[a 11 [b c] d] *[[*[a c] *[a d]] 0 3]
*[a 11 b c] *[a c]
*a *a
nockchain uses nock as its execution layer. nodes run nock to advance the chain state. zk miners prove nock execution of the pow program. ai miners prove dense matmuls for inference. the network verifies the submitted proof instead of repeating the work.
zk proving
base field
goldilocks: p = 2^64 − 2^32 + 1
extension
degree 3 over x³ − x + 1; one felt is three goldilocks elements
powork(64); the puzzle binds block commitment, nonce, length, and the 64-atom product
the 968 air constraints are 834 compute constraints and 134 memory constraints. the memory traversal pads to 1,024 rows, setting the fri domain to 1,024 × 64 = 65,536 and the proof stream to 71 items. tip5 must be bit-exact: changing it changes every transcript challenge, merkle root, and pow digest.
ai proving
dense inference search evaluates a complete tile grid on the gpu and returns the lowest winning ordinal. the recursive certificate opens only the winning row and column strips. every device winner is revalidated on the host against the scalar evaluator before submission. a valid ai-pow certificate wins an ai-pow block.
search
full-grid pearl tickets; lowest ordinal wins
kernels
fused tensor-core transcript + blake3
proof
compact recursive certificate; winning strips only
┌──────────────────────────────┐◀──────────────────────┐
│ network node │ │
│ chain state + verifier │ │
│ accept → broadcast │ │
│ reject → continue mining │ │
└──────────────┬───────────────┘ │
│ mining templates │
▼ │
┌──────────────────────────────┐ │
│ rust mining coordinator │ │
│ zk jobs and ai jobs │ │
└───────┬──────────────┬───────┘ │
│ │ │
▼ ▼ │
┌──────────────┐┌──────────────┐ │
│ zk proving ││ ai proving │ │
│ cuda stark ││ cuda pearl │ │
│ nock trace ││ matmul │ │
└──────┬───────┘└──────┬───────┘ │
│ │ │
└───────┬───────┘ │
│ candidate proofs │
▼ │
└─────────────────────▶─────────────────┘
the full node exposes mining templates for both puzzles. the rust coordinator queues zk jobs and ai jobs independently over tcp and dispatches each to its own cuda prover.
zk path: for every nonce the gpu builds and executes pow, synthesizes compute and memory traces, performs the low-degree extension, commits merkle trees, evaluates the air constraints, and computes the pow digest. low difficulty misses stop before the expensive fri phase; hits complete fri and send a jam-encoded proof.
ai path: the gpu keeps a prepared inference template in a persistent session, searches the ordered ticket grid with fused tensor-core work, and returns the lowest winning ordinal. the host revalidates that winner against the scalar evaluator, then builds the compact recursive certificate.
verification
to write a GPU miner from scratch, one must first add logging instruments to the native verifier, and begin validating submissions of proofs until fully valid proofs are produced.
1 instrument the native hoon verifier with stage checkpoints
2 reproduce the proof layout and fiat–shamir transcript exactly
3 implement kernels for execution, traces, commitments, air, and fri
4 compare intermediate hashes and evaluations with the reference
5 generate low-difficulty candidate proofs
6 submit every candidate to the canonical verifier
7 fix the first failing stage
8 repeat until proofs consistently pass
optimization can only begin after the gpu prover repeatedly passes the complete canonical verification path.
optimization
set up a recursive self improvement loop. each performance change must survive the same fixed-seed proof and canonical verification path before its timing is accepted:
identify bottlenecked / regressed kernels with nsys profile
theorize speed changes for bottlenecks
implement speed changes
mine on low difficulty
ensure verifier passes
↺
progress
the zk-stark prover is about 700 proofs/sec on an rtx 5090. the ai-pow prover is a separate cuda pipeline on the same 5090 clusters. it won ai-pow block 130,042:
with sufficient funding, the optimization loop can run continuously on a dedicated gpu test farm: generate candidate kernel changes, compile, produce fixed-seed proofs, reject anything that fails canonical verification, profile valid builds, and promote only statistically faster variants. the process can continue until throughput reaches the measured hardware roofline and further gains disappear into benchmark noise. the constraint is gpu time and cost. this was done to improve the zk-prover and ai-prover to competitive network speeds.
llm evaluation at scale, powered by a permissionless prediction market
inspiration
socieital truth is consensus and evolves over time. we will forever have an ever increasing demand for AI response evaluations — anyone submits a prompt, anyone judges, the aggregate is the signal. financialization incentivizes honesty and reduces fraud, and permissionless markets are the most efficient way to aggregate consensus. currently, labs pay armies of tutors to do evaluations, but this cannot scale to meet the future's demand. there needs to be a properly incentivized, permissionless market for evaluations.
how it works
creators can write a prompt, choose two models, and launch a prediction market on a blockchain. this costs a small fee to cover inference. markets run for 24 hrs after launch. users can buy shares for each model. the creator collects associated trading fees, incentivizing viral/focus topics. markets autoresolve, paying out the side with the most shares at the end.
there is an autoscaling fee structure as time runs out to discourage sniping. the business aims to break even on market launches, incentivizing users to generate as much novel content as possible, and make its money selling API data access to labs in demand for high entropy evaluations.
┌──────────────────────────────────┐
│ market creator │
│ prompt + two models │
│ pays launch fee │
└─────────────────┬────────────────┘
│ responses generated
▼
┌──────────────────────────────────┐
│ live duel + crypto market │
│ side a shares / side b shares │
└─────────────────┬────────────────┘
│ market opens
▼
┌──────────────────────────────────┐
│ participants │
│ compare responses │
│ buy / sell outcome shares │
│ prices aggregate preference │
└─────────────────┬────────────────┘
│ expiry
▼
┌──────────────────────────────────┐
│ automatic resolution │
│ highest final share total wins │
└─────────────────┬────────────────┘
│
▼
┌──────────────────────────────────┐
│ incentives + data │
│ creator → trading fees │
│ winning traders → payout │
│ platform → evaluation data / api │
└──────────────────────────────────┘
Demo
next, react , tailwind, postgreSQL db, cloudflare, digital ocean VPS, privy with embedded solana/ethereum wallets
i am xebidiah. xebidaih is the identity policy: a closed-loop post-training stack that puts a model on my distribution and keeps it there unsupervised.
the problem
identity is a distribution over language, memory, and action — not a system prompt. a general model will imitate you for a few turns and then regress to its prior. the work is to construct a private training distribution, hold out real writing, and run generate → score → revise until the policy stays in-distribution without being scripted. that loop is how you train a small specialist. i ran it until the live agent occupied xebidiah.
corpus
i collected a large archive of xebidiah — writing, posts, lyrics, project history, memories, and spoken register — then cleaned it into a structured identity dataset. stable facts were split from ephemeral context. the held-out split is real writing the policy never sees at compose time. those artifacts are the training set for a small identity model; the live agent already consumes them as its prior.
biography
stable facts; the identity prior
lore
memories, project history, mythology
dialogue
turn-level examples of register and syntax
posts
public voice: length, cadence, taboo
topics
recurring interests as a sampling prior
style
tone, syntax, and hard boundaries as constraints
eval
held-out posts and conversations for scoring drift
training loop
each iteration treats the current policy as a generator against a frozen eval set. failures become preference data: the rejected generation paired with a source-faithful rewrite. those pairs go back into the identity model as counterexamples and tighter constraints. it is the same data flywheel you run to sft / dpo a small specialist — corpus, targets, preference pairs, evals — executed until generations stayed on-distribution without being puppeteered.
split stable identity from ephemeral context; hold out real writing
encode biography, lore, dialogue, posts, topics, and style constraints
compose a sampled subset with conversation, memories, and the current event
generate; score against the held-out source distribution
mine failures into preference pairs and tighten the identity model
repeat until the policy stays in-distribution without being scripted
agentic structure
each cycle composes sampled biography and lore with style rules, example posts, topics, a 32-message conversation window, relevant memories, goals, and the current event. the model returns both language and an optional action; the runtime matches the action name and dispatches its handler. memory and embeddings live in sqlite, while randomized recursive timers drive posts, mentions, and messages.
fun mechanics
puzzles get published via songs by xebidiah (me). using a custom steganography plugin, inaudible codes are embedded into audio bitstreams. people attempting solutions dm the agent the code and a wallet address. the agent validates and dispenses tokens on-chain. no human in the loop.
interfaces
a custom x client gives the agent persistent sessions, inbox polling, queued requests, rate-limit backoff, and message deduplication. a dm prompt preserves the persona while extracting a puzzle code and wallet when present. valid claims become signed token transfers, but deterministic code—not the model—enforces single-use keys, fixed reward tiers, and recipient checks.
runtime is a fork of elizaos. the identity dataset, eval loop, action wiring, x dm pipeline, and reward gating are original.
ran local stable-diffusion pipelines for commissioned digital artwork (pytorch)
planmeca — product development engineer, laser optics lab
richardson, tx · jan 2021 – may 2022
r&d engineering studies for a class ii medical device
designed and tested a pico-projector system for 3d scanning (zemax) — cut optics cost 90%
built and tested prototypes, ran root cause analysis
improved camera calibration using dhe and levenberg–marquardt optimization (c++)
duke bme design symposium — optical engineer
durham, nc · jan 2020 – apr 2020
led ideation and engineering for the team
designed the optical system for a portable retinal camera (zemax)
defined iso/ansi constraints and validated in simulation (matlab)
80% lower production cost than market leaders
planmeca — product development intern
richardson, tx · jun 2019 – aug 2019
designed a driver board for vcsel feasibility testing (altium)
designed 3d calibration phantoms for a ss-oct system (solidworks)
duke university - b.s.e. biomedical engineering : imaging systems & bioelectricity
durham, nc · aug 2016 – apr 2020
data analysis, linear algebra, differential and partial equations, signals and systems, microcontroller design, monte carlo methods, biophotonics, ray optics, imaging systems.
can build in anything. preferences:
rust
high performance single threaded systems
cuda
stark provers, highly-parallel systems
c++
microcontrollers, embedded systems, firmware
typescript
ai agent tooling
javascript
static front ends
leptos
webapp frontends
diesel
postgreSQL databases
hoon
nockchain formal language
zemax
optical design
extras
altium, solidworks, labview, C, python, etc. anything.
AI has abstracted syntax. one's choice of language should be optimized for the problem at hand, not bound by the tools they have used in the past...