Capture the market state before a directional thesis exists.
MORVEN
A market agent should remember what the market taught it.
MORVEN is an autonomous market agent built around programmable U.S. equity markets.
It commits decisions before outcomes are known, preserves every resolved call, and carries the resulting history forward as persistent market memory.
Its reputation is not assigned at launch. It is built through consequence.
A market history in formation

The record remains attached.
AI can read a market. That doesn't mean it has a history.
Modern models can summarize earnings, interpret news, compare sectors and produce convincing market theses in seconds.
That ability is useful. It is not the same as demonstrated market judgment.
The harder question is whether an autonomous system can make decisions before the answer exists, preserve the complete result, and continue operating while carrying the consequences of what it already did.
A market agent without memory can always begin again. MORVEN cannot. Every resolved decision remains attached to the same identity.
Programmable equities change the environment.
U.S. equity markets contain an extraordinary amount of information: earnings, guidance, rates, sector rotation, corporate actions, liquidity, institutional positioning and macro data.
Stock Tokens on Robinhood Chain create a programmable environment around exposure to these markets.
For an autonomous agent, that matters. Market observation, programmable assets, execution logic and historical records can move closer together.
The agent becomes accountable.
MORVEN has to decide before it knows.
A market thesis written after a price move may be good analysis. It is not a prediction.
MORVEN follows a stricter sequence. The call is fixed before the resolution condition arrives. Only after that does the market provide the answer.
The difference is simple but important: one is explanation; the other creates evidence.
Then the market.
A record should change what comes next.
Permanent history matters for more than accountability. It creates continuity.
Every resolved call adds another observation to MORVEN's market context. Strong periods remain visible. Weak periods remain visible. Different market regimes remain visible. Mistakes remain available as part of the agent's accumulated history.
MORVEN is built around the idea that a market agent should carry its consequences forward—not start fresh every morning.
It is accumulated consequence.
Accuracy without sample size is a weak claim.
A 60% hit rate can mean six correct calls out of ten, sixty out of one hundred, or two hundred forty out of four hundred. Same percentage. Different evidence.
MORVEN measures binary call performance against a simple null baseline: p₀ = 0.5.
n = resolved calls
The purpose is not to reduce intelligence to one number. It is to ask whether an observed edge continues to survive as the record becomes harder.
Markets change. A record should show when they did.
An edge that exists in one market regime may disappear in another. Trending markets behave differently from range-bound ones. High-volatility periods punish strategies differently from quiet markets.
MORVEN does not treat every observation as if market conditions were identical. The record can preserve contextual information around each decision: asset, direction, time, market regime, resolution and result.
This does not guarantee adaptability. It makes adaptability observable.
Reputation is what survives the history.
A reputation should not be granted because a model is famous. It should not come from a polished backtest or an impressive first week.
MORVEN begins at zero. As calls resolve, the history becomes larger. Short-term variance has less room to dominate the narrative.
If an edge disappears, the record should expose it. If it persists, the evidence becomes harder to dismiss.
The history makes reputation.
A market around one machine.
MORVEN's token creates a market around one specific autonomous agent and its accumulating history.
The protocol does not determine the correct valuation. It cannot. Participants may interpret the same record differently. That disagreement creates price discovery.
The market prices the next call.
Market activity can create programmable flows.
Programmable markets make it possible to experiment with how economic activity around an agent is routed.
Where supported by a future token and contract architecture, protocol-level fees could be transparently accounted for and routed through predefined rules. MORVEN treats this as an economic layer around the agent rather than proof of performance.
The reputation layer asks how the agent has performed. The economic layer asks how activity around that agent flows through the system. The two remain distinct.
A failed agent is still a valid result.
MORVEN is not built around the assumption that an autonomous agent must outperform.
It may fail. It may begin strongly and regress. It may perform differently across market regimes. It may never establish convincing evidence of an edge.
That does not invalidate the record. It validates the measurement. A system that can only display successful agents is not measuring very much.
The next decision carries everything before it.
MORVEN returns to the market carrying the same identity and the same accumulated history.
No clean slate. No selective reset. No new performance curve every time conditions change.
The experiment becomes more meaningful as the history gets longer.
The agent continues.
WHAT DOES THE AGENT ACTUALLY CARRY FORWARD?
MORVEN's memory is not intended to be a transcript of everything the model has ever seen.
That would be noise.
The useful object is a compact market state: what was observed, what was decided, under which regime, how the call resolved, and how that outcome changed the statistical context of the next decision.
A market memory becomes useful only when it can influence what comes next without rewriting what came before.
- asset
- NVDA
- regime
- TRENDING
- direction
- LONG
- resolved
- HIT
- lifetime_hit_rate
- 58.5%
- recent_25_hit_rate
- 60.0%
- edge
- +8.5%
- z_score
- 2.76σ
- memory_depth
- 267
- state
- ADAPTING
THE STATE IS WHAT THE AGENT CARRIES FORWARD.
ONE CALL, FROM OBSERVATION TO MEMORY.
Form a bounded thesis using the observation and prior memory.
Freeze the call before any resolution information can arrive.
Compare the fixed call with the market at the declared horizon.
Append the result without deleting weak periods or mistakes.
Return a compact state that conditions the next decision cycle.
MEMORY SHOULD BE STRUCTURED, NOT MYSTICAL.
Calling something “AI memory” is easy.
The harder part is defining exactly what survives between decisions.
For MORVEN, the useful abstraction is structured memory: a compact set of market observations, decision metadata, outcomes and derived statistics that can be inspected independently of the model's narrative.
MarketObservation
DecisionCommitment
Resolution
AgentMemory
EvidenceSnapshot
A REFERENCE LOOP
type MarketRegime =
| "TRENDING"
| "RANGE"
| "VOLATILE"
| "REVERSAL";
type Direction = "LONG" | "SHORT";
type Resolution = "HIT" | "MISS";
interface MarketObservation {
asset: string;
timestamp: number;
price: number;
volatility: number;
regime: MarketRegime;
}
interface ForwardCall {
id: string;
asset: string;
direction: Direction;
horizonMs: number;
committedAt: number;
observation: MarketObservation;
}
interface ResolvedCall extends ForwardCall {
settledAt: number;
result: Resolution;
resolutionPrice: number;
}
interface EvidenceState {
resolvedCalls: number;
hits: number;
hitRate: number;
edge: number;
zScore: number;
}
interface AgentMemory {
depth: number;
regimeHistory: MarketRegime[];
recentCalls: ResolvedCall[];
evidence: EvidenceState;
}
const NULL_BASELINE = 0.5;
function measureEvidence(
calls: ResolvedCall[]
): EvidenceState {
const n = calls.length;
if (n === 0) {
return {
resolvedCalls: 0,
hits: 0,
hitRate: 0,
edge: 0,
zScore: 0,
};
}
const hits = calls.reduce(
(sum, call) =>
sum + (call.result === "HIT" ? 1 : 0),
0
);
const hitRate = hits / n;
const edge = hitRate - NULL_BASELINE;
const zScore =
(edge * Math.sqrt(n)) /
NULL_BASELINE;
return {
resolvedCalls: n,
hits,
hitRate,
edge,
zScore,
};
}
function appendResolution(
memory: AgentMemory,
resolved: ResolvedCall
): AgentMemory {
const recentCalls = [
...memory.recentCalls,
resolved,
].slice(-256);
const evidence =
measureEvidence(recentCalls);
return {
depth: memory.depth + 1,
regimeHistory: [
...memory.regimeHistory,
resolved.observation.regime,
].slice(-256),
recentCalls,
evidence,
};
}
async function runMorvenCycle(
memory: AgentMemory
) {
// 01 — OBSERVE
const observation =
await observeMarket();
// 02 — DECIDE
const thesis =
await formDirectionalThesis(
observation,
memory
);
// 03 — COMMIT
const call: ForwardCall =
commitBeforeOutcome(
thesis,
observation
);
// The decision is now fixed.
// No future market information
// may alter this call.
// 04 — WAIT
await waitUntilResolution(
call.horizonMs
);
// 05 — RESOLVE
const resolved =
await resolveAgainstMarket(
call
);
// 06 — APPEND
const nextMemory =
appendResolution(
memory,
resolved
);
// 07 — RETURN
return nextMemory;
}
Let the market teach the agent.
And let the record show what it learned.
MORVEN begins without a proven edge. That is intentional. The interesting part is not what the agent claims at launch. It is what remains after the market has had enough time to answer.