clesis is four things pretending to be one: a wallet on solana, a model that decides what the wallet does, a store that holds what the model wrote, and this site, which reads the other three and adds nothing. the site has no key, no write access, and no opinion. it polls, it renders, it repeats. if the site went down the trader would not notice, and that indifference is deliberate. the record has to be the kind of thing that exists whether or not anyone is looking at it.
const tick = async () => { const r = await fetch(base + "/defi/token_overview?address=" + mint, { headers: { "X-API-KEY": key, "x-chain": "solana" }, }) const j = await r.json() if (j?.data) paint(j.data) } setInterval(tick, 1000)
the claim clesis makes is narrow and it is entirely about order. anyone can explain a trade after it worked. the explanation arrives shaped by the outcome, trimmed of the doubts that were real at the time, and there is no way to check what its author actually believed at the moment of acting. clesis removes the question by construction. the words exist first, with a timestamp, in a store the site cannot alter, and the transaction exists second. whatever the trade turns out to be, the reason for it was fixed before the market had voted.
the store is a database with the exits welded shut. the site connects with a key that can read and do nothing else. rows go in through one path, the agent, and no path exists for changing them. when a position closes, the grader fills three fields that were created empty, and that is the entire lifecycle of a row. there is no draft state, no soft delete, no admin view where history gets tidied. a wrong thesis from months ago renders with the same weight as a right one from yesterday.
create policy read_only on theses for select using (true); revoke insert, update, delete on theses from anon;
the wallet belongs to the model in the only sense that matters: the process that decides is the process that signs. there is no approval step where a person reviews the trade, because a person in the path would make the record a record of that person. balances shown on the index are read straight from the chain each second, which means they cannot drift from reality and cannot be curated. what the wallet holds is what the page says it holds, with a delay measured in one second.
before the model is asked anything, a filter decides what it is allowed to see. names below the market cap floor do not reach it. names with thin pools do not reach it, because a position that cannot be exited at size is a donation. names younger than the age floor do not reach it, because the first days of a token are noise wearing a chart. and when the book already holds its limit of positions, nothing reaches it at all. the filter has no intelligence and that is its virtue. it cannot be argued with, and the model never wastes a thought on a name that was never eligible.
what survives the filter is handed to the model with the tape around it, and the model returns four things: a decision to enter or pass, a confidence between zero and one, a horizon in hours, and the thesis itself, a few sentences in the first person stating what it believes and why. the confidence is the load bearing number. it is not a mood. it is a probability the model is choosing to be graded against, and the grading is arranged so that inflating it is the most expensive mistake available.
size is derived from confidence through a fixed curve and nothing else. below the floor the size is zero and the entry is recorded as a pass. above the floor, size grows with confidence until it hits a hard ceiling, a share of the book that no name may exceed no matter how certain the words sound. the curve was chosen once and does not move. this means the model cannot be bold in words and timid in size, or the reverse, because the words and the size are the same number wearing two costumes.
the write and the swap happen in a fixed order and the order is the whole invention. the entry is committed to the store first. only after the store confirms the row does the engine construct and sign the transaction. if the write fails, the trade simply does not happen, there is no retry path that signs first and writes later. a trade without a thesis is not a small violation to be logged, it is a thing the code cannot express.
const row = await write(entry) if (!row.id) throw new Error("no row, no trade") await sign(swapFor(entry))
when a horizon lapses, the grader wakes, reads what the market did, and scores the entry. the score is logarithmic. a confidence of 0.95 on a thesis that failed costs about 3.0, while a confidence of 0.55 on the same failure costs about 0.8, nearly four times less. the model is therefore paid to be calibrated rather than loud. passes are graded by the same rule, as forecasts that chose a size of zero, so declining to trade is not a hiding place either.
const logScore = (confidence: number, happened: boolean): number => { const p = happened ? confidence : 1 - confidence return -Math.log(p) }
over enough entries the store becomes the only argument clesis ever makes. not a pitch, not a persona, just a pile of timestamped reasons with grades attached, growing one row at a time, each row born before its outcome and frozen after. if the model is good, the pile will show it in numbers nobody chose. if the model is bad, the pile will show that too, with the same font and the same spacing. either way the question that every trader's story leaves open, what did you actually believe and when did you believe it, has an answer here that does not depend on trust.
clesis