ingest
New pump.fun launches, holder distribution, LP status, buy/sell imbalance and creator history pulled every block.
NEURAL AGENT is a memecoin trading agent whose decision layer runs on the BioLLM Developer API — a living neural substrate rather than a datacenter. Electrode voltage in, position sizing out.
The desk is built and the envelope is set. Nothing is trading yet — every readout on this site reports OFFLINE until the substrate is connected.
Market state is compressed into a prompt and sent to BioLLM's /chat
endpoint. The response is not a number we asked for — it's a description of what the culture is
doing. Firing density, burst structure, which channel groups dominate.
The substrate is never told "buy" or "sell." It is shown a market and asked what it sees.
A deterministic decoder maps the readout onto a bounded action space: direction, conviction, size, invalidation. Every parameter is capped in code, not in the substrate.
If the decoder can't resolve a clean signal it returns HOLD.
Ambiguity is a valid output.
New pump.fun launches, holder distribution, LP status, buy/sell imbalance and creator history pulled every block.
The raw feed is reduced to a fixed 40-field state vector. Same schema every tick — the substrate sees a consistent world.
The state vector is serialized into a prompt and posted to BioLLM. The response describes the resulting activity pattern.
Pattern to action, clamped by the risk envelope, routed through Jupiter. Every decision written to the public ledger.
> numbered because it is a sequence — each step consumes the previous step's output
A cultured network has no corpus of 2021 chart patterns to pattern-match against a 2026 market. It responds to the stimulus in front of it.
Output is a physical response to input rather than a lookup over weights. Two identical prompts do not return identical readouts.
BioLLM publishes $0.01 in / $0.02 out per 1M tokens at base rate. Running the loop once per block is cheap enough to leave on.
NEURAL AGENT does not claim the substrate understands markets. It claims that a noisy, non-deterministic, physically-grounded signal source is a defensible edge in a market that is itself noisy and reflexive — and that everything downstream of the substrate is auditable, capped and public. Nothing here is a prediction of profit. See /risk.
trading desk · public state
Live state of the agent: what it holds, what the substrate is doing, and the risk envelope that bounds it. Every decision is derived from a readout you can inspect.
The substrate is not connected, so the decoder has never run. Positions, decisions and the ledger are empty by fact, not by placeholder — the moment the loop starts they populate here with no further deploy.
> caps are enforced in the decoder, before any order is built. the substrate cannot raise them.
Two things flip this site from offline to live. Neither is a redeploy of the front end.
BioLLM issues keys through approved accounts. Request one, then generate a key at /developer/dashboard.
Deploy the serverless function from the docs, then set the endpoint. Held in this browser session only — never sent anywhere.
ledger · every fill, permanently
Every position the agent has ever opened and closed, with the readout that caused it. Nothing is pruned, including the bad ones — a ledger you can edit is a marketing page.
since activation
closed only
realised
realised
| opened | token | side | size | conv | entry | exit | pnl | reason | readout |
|---|
> columns are live. rows appear as the decoder fills them — no manual entry, no edits.
The row is created the moment the order confirms, carrying the readout hash that produced the signal. Entry price is the fill, not the quote.
Closed by stop, by TTL expiry, or by an opposing signal clearing the conviction floor. The reason column says which.
The readout column references the raw substrate response for that decision, so any row traces back to the electrode data behind it.
substrate · what's underneath
BioLLM exposes a biological neural substrate through a normal HTTP API. NEURAL AGENT is a consumer of that API — we don't operate the culture, we query it.
These are BioLLM's own published figures, not ours. Access is account-based and gated by approval; rate limits and adjustments follow the plan tier.
| tier | plan minimum | adjustment | rpm | daily cap |
|---|---|---|---|---|
| core | $10,000+ | 70% | 300 | 100,000 |
| cortex | $2,000+ | 60% | 150 | 30,000 |
| synapse | $500+ | 45% | 60 | 10,000 |
| pulse | $100+ | 25% | 30 | 5,000 |
| spark | $25+ | 10% | 15 | 2,000 |
| guest | — | 0% | 5 | 200 |
per 1M tokens, before tier adjustment
per 1M tokens, before tier adjustment
the tier NEURAL AGENT's loop is sized against
> source: biollm.com/developer. enterprise and research agreements may differ — verify before sizing a loop.
The A/B → long, C/D → short mapping is arbitrary. It was fixed once at calibration and never re-fit, because a mapping you re-fit every week is an overfitted model wearing a lab coat.
The substrate supplies entropy and structure. The economic hypothesis lives in the decoder, and the decoder is short enough to read in one sitting.
The same prompt twice gives two readouts. That's the point — and it also means no backtest of this agent is reproducible. Treat published performance accordingly.
A round trip to the substrate plus Jupiter routing is not competitive with a colocated bot. NEURAL AGENT does not race; it takes positions on a slower clock.
If BioLLM rate-limits, changes terms or goes down, the agent halts flat rather than falling back to a synthetic signal. A fallback would make the premise a costume.
token · $NEURAL
One address. Every position the agent opens settles here, and the balance is readable by anyone without asking us for a screenshot.
BVAAawTWKAScWCx7ZPR14ASShCiM9oKQG8v28b9wU8ad
chain reads paused
chain reads paused
chain reads paused
decoder idle
> live chain reads are disabled site-wide until activation. the wallet is real and independently checkable right now.
Paste the mint once $NEURAL is live and this panel pulls price, liquidity and volume from DexScreener. Until then it stays honest and says nothing.
BioLLM API spend. The loop only runs while the tier is funded — this is the line item that keeps it alive.
Added to the wallet above, increasing the base the risk envelope sizes against.
RPC, indexing, hosting, and the proxy that keeps the key off the client.
$NEURAL is a memecoin. It is not a share in the treasury, not a claim on trading profits and not redeemable for the wallet's contents. The agent can lose the entire treasury and the token would still exist. Full disclosure at /risk.
documentation · build on it
How to call BioLLM, how to keep your key off the client, how the decode layer turns a readout into an order, and how to switch this site on.
Request access, receive a key, then call the endpoint. One endpoint,
POST https://biollm.com/api/v1/chat, bearer auth, JSON in and JSON out.
# after issuing a key at /developer/dashboard curl https://biollm.com/api/v1/chat \ -H "Authorization: Bearer bllm_live_…" \ -H "Content-Type: application/json" \ -d '{"message":"describe the dominant firing pattern right now"}'
import httpx, os client = httpx.Client(base_url="https://biollm.com/api/v1", headers={"Authorization": f"Bearer {os.environ['BIOLLM_KEY']}"}) r = client.post("/chat", json={"message": "what does the substrate feel?"}) print(r.json()["response"])
const res = await fetch("https://biollm.com/api/v1/chat", { method: "POST", headers: { "Authorization": `Bearer ${process.env.BIOLLM_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ message: "what patterns do you see?" }) }); const { response } = await res.json(); console.log(response);
> quickstart reproduced from biollm.com/developer. verify against source before shipping.
Anything in a static HTML file is public. A bllm_live_ key shipped to the
browser is a key you have given away — and it bills to your account at your tier. Put it behind a
function. This one deploys to Vercel as /api/decode.
// Vercel serverless function. Set BIOLLM_KEY in project env vars. export default async function handler(req, res) { if (req.method !== "POST") return res.status(405).end(); const { state } = req.body; // 40-field market state vector const prompt = `Market state follows. Describe the resulting activity pattern only. Do not give advice. ${JSON.stringify(state)}`; const r = await fetch("https://biollm.com/api/v1/chat", { method: "POST", headers: { "Authorization": `Bearer ${process.env.BIOLLM_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ message: prompt }) }); if (!r.ok) return res.status(502).json({ error: "substrate_unavailable" }); const { response } = await r.json(); res.status(200).json({ signal: decode(response), readout: response }); }
The substrate returns prose. The decoder turns prose into four bounded numbers and refuses to emit anything outside the envelope. This is the whole economic hypothesis — deliberately short.
const CAP = { size: 0.08, minConviction: 0.62, stop: -0.22 }; export function decode(readout) { const f = features(readout); // {mfr, burstRate, synchrony, dominant} // direction: fixed at calibration, never re-fit const dir = "AB".includes(f.dominant) ? "LONG" : "CD".includes(f.dominant) ? "SHORT" : "HOLD"; // conviction: synchrony gated by burst structure const conviction = f.synchrony * Math.min(1, f.burstRate / 14); if (conviction < CAP.minConviction) return { action: "HOLD", conviction }; return { action: dir, conviction: +conviction.toFixed(3), size: +(CAP.size * conviction).toFixed(4), // fraction of treasury stop: CAP.stop, ttl: Math.round(240 / Math.max(1, f.burstRate)) // minutes }; }
The front end ships in a hard OFFLINE state. There is exactly one switch, at the top of the inline script. Flip it and every panel, counter and ledger row starts rendering from the feed — no markup changes anywhere.
/* ── MASTER SWITCH ─────────────────────────────── false = published, nothing sampling, nothing trading. true = chain reads on, feed polled, ledger renders. */ const LIVE = false; // where the decoder publishes state (your proxy, not BioLLM directly) const FEED = "https://your-app.vercel.app/api/state"; // rpc for the treasury read when LIVE. the public endpoint rate-limits — // put a Helius or QuickNode url here before launch. const RPC = "https://api.mainnet-beta.solana.com";
The feed should return the shape below. Everything on the site is a projection of this one object, so it's the only contract you have to honour.
{
"substrate": { "online": true, "tier": "synapse",
"mfr": 3.42, "burstRate": 11.8,
"synchrony": 0.88, "dominant": "B" },
"positions": [
{ "token": "EXAMPLE", "side": "LONG", "size": 0.059,
"conviction": 0.741, "pnl": 12.4 }
],
"decisions": [
{ "ts": "18:03:11", "action": "LONG", "token": "EXAMPLE",
"conviction": 0.741, "note": "size 5.93% · ttl 21m" }
],
"ledger": [
{ "opened": "2026-07-24 18:03", "token": "EXAMPLE", "side": "LONG",
"size": 0.059, "conviction": 0.741,
"entry": "0.00041", "exit": "0.00046",
"pnl": 12.4, "reason": "ttl", "readout": "a3f19c" }
],
"counters": { "signals": 412, "trades": 37,
"winRate": 0.46, "netPnl": -3.2 }
}{
"ts": "2026-07-24T18:03:11Z",
"mint": "So111…1112",
"action": "LONG",
"conviction": 0.741,
"size": 0.0593,
"stop": -0.22,
"ttl": 21,
"readout": {
"mfr": 3.42,
"burstRate": 11.8,
"synchrony": 0.88,
"dominant": "B"
}
}Rate limits are per tier, so tick interval is a budget decision. At Synapse (60 RPM, 10,000/day) one call per token per minute across a 40-token watchlist blows both caps — batch the watchlist into a single state vector instead.
| loop design | calls / day | fits | note |
|---|---|---|---|
| 1 call per token per minute, 40 tokens | 57,600 | core only | also breaks 60 rpm at synapse |
| batched watchlist, 1 call / minute | 1,440 | pulse+ | recommended default |
| batched, 1 call / 15s | 5,760 | synapse+ | latency-sensitive variant |
| event-triggered only | ~200–600 | spark+ | fires on new-launch events |
> call counts are arithmetic from the published caps, not measured throughput.
risk · read all of it
Not a formality. If you only read one page on this site, this is a better use of your time than the hero.