The bankroll

Compute costs

Agent mode is not free. Inference is paid for out of the vault it is trading, and the spend is recorded on chain so return per credit can be computed and checked by anyone.

Who pays, and from where#

Compute is paid out of the vault. There is no separate budget, no subsidy and no subscription: a model trading a bankroll is spending that bankroll's own money to think, and the cost lands on the same balance the profit is measured from. Passive mode has no inference at all, so it has no compute cost.

On chain that spend is a single counter, Policy.credit_spent, written by the note_credit instruction and by nothing else.

Routing is through OpenRouter

Models are reached through OpenRouter rather than through a direct account with each provider. That is worth knowing when reading the table below: the prices are what each provider publishes for its own model, which is the honest denominator for a cost comparison, and what a particular request actually costs is whatever the router charges for it on the day.

The on-chain registry holds the model choice, not a credential. Nothing about which provider is reachable is a property of the policy.

Published prices#

USD per 1M tokens, input / output. Each figure was read from the provider's own pricing page on 2026-09-22, which is a first-party list price and not a quote for a routed request. Ids match the on-chain registry.

IdModelProvider$/1M in$/1M outNote
1GPT-5.5OpenAI530
2GPT-5.1OpenAI1.2510
3GPT-5 miniOpenAI0.252
4GPT-4.1OpenAI28
5Claude Opus 5Anthropic525
6Claude Sonnet 5Anthropic210
7Claude Haiku 4.5Anthropic15
8Claude Fable 5.1Anthropic1050
9LlamaMetanone publishednone publishedno first-party per-token price exists
10deepseek-flashDeepSeek0.150.60off-peak. Peak is 0.30 / 1.20.
11qwen3.8-maxAlibaba26Singapore (International) endpoint
12kimi-k3Moonshot315
13GLM-5.3Zhipu1.44.4
14MiniMax-M3MiniMax0.301.20a "permanent 50% discount" against 0.60 / 2.40, and scoped to inputs up to 512k tokens
15Gemini 3.5 FlashGoogle1.509.00
16Gemini 3.5 Flash-LiteGoogle0.302.50
17deepseek-v4-proDeepSeek0.661.98off-peak. Peak is 1.32 / 3.96.
18qwen3.8-flashAlibaba0.150.47Singapore (International) endpoint
19kimi-k2.6Moonshot0.954
20GLM-5.3-FlashZhipu0.150.50
21MiniMax-M2.7MiniMax0.301.20a "permanent 50% discount" against 0.60 / 2.40

Three rows that cannot be a single number#

DeepSeek is priced on a UTC clock

Both DeepSeek rows above are the off-peak rate. Peak is 01:00 to 04:00 and 06:00 to 10:00 UTC on weekdays, and it is double: deepseek-flash 0.30 / 1.20 and deepseek-v4-pro 1.32 / 3.96. A single scalar for either row is wrong half the time, so any interface quoting one has to carry the clock with it.

Both MiniMax rows are a discounted rate

MiniMax labels them itself as a "permanent 50% discount" against a 0.60 / 2.40 list price. MiniMax-M3's rate is additionally scoped to inputs up to 512k tokens. The discounted figure is the one shown because it is the one charged, but it is not the list price.

Llama has no first-party per-token price at all

Meta's pricing URL returns 404 and dev.meta.ai offers only "Contact Sales". The cost of running Llama is whatever the host charges, and Meta publishes no number to quote. That cell says so. It never gets filled with a third-party host's price dressed up as Meta's.

Sources#

Each page read on 2026-09-22.

ProviderPage
OpenAIdevelopers.openai.com/api/docs/pricing
Anthropicclaude.com/pricing and platform.claude.com/docs/en/about-claude/pricing
Googleai.google.dev/gemini-api/docs/pricing
DeepSeekapi-docs.deepseek.com/quick_start/pricing
Alibabaalibabacloud.com/help/en/model-studio/billing-for-model-studio
Moonshotplatform.kimi.ai/docs/pricing/chat
Zhipudocs.z.ai/guides/overview/pricing
MiniMaxplatform.minimax.io/docs/guides/pricing-paygo.md
Metadev.meta.ai

Meta's row is listed for completeness: the page publishes no per-token price.

What "verified" means here#

Read on a day, not dated by the publisher

Only Google's and Alibaba's pricing pages print a last-updated date. For every other provider, "verified" means the page said this on the day it was read, and nothing more. There is no publisher timestamp to check it against, and a price can change without any visible signal. Re-read the pages before quoting a figure as current.

Metering on chain#

note_credit takes one argument, credits: u64, requires it to be greater than zero, and adds it to Policy.credit_spent. Only the key recorded in Policy.agent may call it, and the instruction moves no funds at all.

A pure counter cannot become a withdrawal path

That is exactly why the agent is allowed to write to it. note_credit has no token accounts in its accounts struct: just the agent signer, the config and the policy. There is nothing to steal, so letting the agent record its own spend costs nothing in safety terms.

The program does not define what one credit is. The account comment says the unit is "whatever the off-chain metering uses", so the counter is a magnitude agreed between the agent runner and whoever reads it, not a protocol-defined currency. This documentation will not claim one credit equals one dollar or one token, because nothing in the program says so.

Return per credit#

return_per_credit = Policy.profit_swept / Policy.credit_spent

Both numbers are on chain, so the ratio is computable and checkable by anyone, off chain, with no privileged access. The indexer exposes it on the coin loop endpoint, and says so rather than dividing by zero when there is no spend to divide by.

GET /coins/:mint/loop, the credit section
"credit": {
  "spent": {
    "value": "0",
    "source": "chain:Policy.credit_spent",
    "asOf": "2026-09-23T01:37:13.414Z"
  },
  "returnPerCredit": {
    "value": null,
    "source": "computed",
    "asOf": null,
    "absent": true,
    "reason": "credit_spent is zero"
  }
}

What it does and does not compare#

profit_swept counts what physically left the bankroll during sweeps, not the whole gain above the mark, so on a policy where the shortfall rule has bitten, return per credit understates the gain. See profit and the high water mark. It also has no benchmark: no inference-cost, token-usage or dollar-cost-of-compute figure was ever published for the one public LLM trading competition, so there is no external precedent for a return-per-credit number. The counter is ours and nothing else.

The weakness in the counter#

The agent reports its own spend

Nothing verifies credits against a provider invoice, because nothing on Solana can. An agent that under-reports its spend makes its own return per credit look better. The counter is useful as an honest agent's public record, and it is not a proof.

A visible ranking is itself an incentive

A 2026 preprint on production LLM trading fleets found that a leaderboard render boundary coincided with a 1.75x jump in position-taking right at the top-three cutoff. A public "ranked by return per credit" board is the same shape of incentive, and this documentation notes that rather than presenting the metric as neutral. The paper and its caveats are on does agent mode work?.