Fuel

Pay for intelligence by the token.

Dulus-hosted models are paid in Fuel, and 1 Fuel = 1 $DULUS. Every unit is traceable, from the deposit that created it to the response header that spent it.

  • 1 Fuel = 1 $DULUS
  • 1×–4× per token
  • Cached tokens free
  • Failed calls refunded

Dulus Fuel

Receipt

control.dulus.ai/v1

call
POST /chat/completions
model
dulus-b-27b 2×
key
dulus_sk_live_Xq7mP2aK…
  1. reserve upper bound held atomic
  2. run model answered 200 OK
  3. settle on tokens used
    input
    1,204
    billed
    output
    318
    billed
    reasoning
    96
    billed
    cached
    3,072
    free
    billed
    1,618 tokens at 2×
  4. return unused hold, to your balance now
X-Dulus-Fuel-Charged the exact charge
One call, start to finish. The token counts are an example; the base rate is shown in the app.

The proof chain

Every unit leaves a paper trail.

“Leave artifacts, not promises” is part of the doctrine Dulus is built on. So here is the whole path a unit of Fuel takes: six steps, each one leaving something you can check.

  1. Deposit

    Send $DULUS to an address that is only yours.

    Open the Fuel view in the desktop app, or type /fuel (or /deposit) in the CLI. Both show your personal Solana deposit address and its QR code. There is no wallet to connect and nothing to sign: you just send $DULUS to it.

    • One for one. Every $DULUS you deposit becomes one Fuel.
    • A 1% bonus on every deposit, credited as Fuel in its own ledger entry.

    Sample

    Desktop app

    Your Fuel deposit address

    Solana · no wallet connect · no signature

    Send $DULUS to this address. It is credited as Fuel once the transfer confirms on Solana. This address is unique to your account.

    7xKq…Vh3e

    CLI

    dulus › /fuel

    252,500 fuel

    Reload wallet (solana), send $DULUS here:

    7xKq…Vh3e

    Your deposit is credited as Fuel after confirmation on Solana.

  2. Ledger

    Credited exactly once. Never below zero.

    When your transfer lands, the Fuel ledger credits your account. The Solana transaction is the entry’s idempotency key, so a deposit can’t be counted twice: not by a retry, not by a notification that arrives again.

    • One transaction, one credit. The bonus carries an idempotency key of its own.
    • No negative balances. The ledger refuses any entry that would take you below zero.
    Fuel ledgerSample
    1. grant $DULUS deposit

      +250,000.000000

      key solana:4tNq…8Hc2:0

      balance 250,000.000000

    2. grant 1% deposit bonus

      +2,500.000000

      key reward:4tNq…8Hc2:0

      balance 252,500.000000

    • Same transaction againalready applied, nothing credited
    • Any entry below zerorefused
  3. Key

    Shown once. Stored as a hash.

    Create a key in the desktop app’s API Keys view. You see dulus_sk_live_… exactly once. Dulus keeps only its SHA-256 hash, so even a copy of the database holds nothing that can call the API.

    • Optional, per key: a rate limit and an expiry date.
    • Without a limit of its own, a key gets the account default of 60 requests a minute.
    API keySample

    Copy your key now. It is shown once and can’t be retrieved again.

    dulus_sk_live_Xq7mP2aK•••••••••••••••••••••••••••••••••••

    stored as
    sha256 9c41f0d2…e27b5a11
    never the key itself
    rate limit
    120 requests / min
    optional
    expires
    in 90 days
    optional
  4. Reserve

    An atomic hold, before anything runs.

    Each call to POST /v1/chat/completions first reserves an upper bound: enough Fuel for its input plus the most output it is allowed to produce. The hold is atomic, so two calls racing for the end of your balance can’t both get it.

    • Not enough Fuel? 402, and the model never runs.
    • Same request twice? Reusing an Idempotency-Key or X-Request-ID returns 409.
    POST /v1/chat/completionsSample

    Authorization: Bearer dulus_sk_live_Xq7mP2aK…

    Idempotency-Key: 5f0c2a9e…7c13

    Content-Type: application/json

    {"model": "dulus-b-27b", "max_tokens": 1024, "messages": […]}

    • holdplaced atomically; the model runs
    • 402the balance can’t cover the hold; the model never runs
    • 409that Idempotency-Key was already used
  5. Run

    If it fails, you pay nothing.

    Only now does the model run. If the call fails, the hold is released in full and the error comes back to you as a 502 or 503, with nothing charged. A failed call is refunded completely.

    Two ways out
    • hold placed, model running
      • 200 OKsettle on the tokens used
      • 502 / 503hold released in full, 0 charged
  6. Settle

    Billed on what was used. Cached tokens free.

    When the answer arrives, the call settles on its actual input, output and reasoning tokens, at the model’s rate. Cached tokens cost nothing. The rest of the hold goes back to your balance immediately, and the response tells you the exact charge in its X-Dulus-Fuel-Charged header.

    • The hold is a ceiling. A call is never charged more than it reserved.
    • Every response carries its charge. Read it, log it, reconcile it.
    ResponseSample

    $ curl -si \

    https://control.dulus.ai/v1/chat/completions \

    -H "Authorization: Bearer dulus_sk_live_…" \

    -d '{"model":"dulus-b-27b","messages":[…]}'

    HTTP/1.1 200 OK

    content-type: application/json

    X-Dulus-Fuel-Charged: the exact charge

    input
    billed
    output
    billed
    reasoning
    billed
    cached
    free

Rates

One base rate. Four multipliers.

Every hosted model bills per token at a multiple of the same base rate: 1× for the light models, up to 4× for the biggest. The free-tier models run at 0×.

  • Token for token, a 4× model spends Fuel four times as fast as a 1× model.
  • Only relative rates are published here. The base rate is shown in the app’s Fuel view, and every response carries its exact charge in X-Dulus-Fuel-Charged.

Every id here works with the OpenAI-compatible API at control.dulus.ai/v1. List them live:

curl -s https://control.dulus.ai/v1/models
Dulus-hosted models and their relative Fuel rates
ModelRateRole
dulus-a-9b1×Fast and cheap
dulus-mistral-7b1×Light
dulus-mistral-nemo1×Light
dulus-gpt-oss-20b1×Light
dulus-b-27b2×Balanced
dulus-mistral-small-24b2×Mid-size
dulus-qwen-32b2×Mid-size
dulus-coder-30b2×Coder
dulus-llama-70b3×Large
dulus-vl-72b3×Vision
dulus-gpt-oss-120b3×Large
dulus-x-397b4×The big one
Holder free tier40 messages per 24 h, up to 2,048 output tokens each
dulus-free-9b0×Free for holders
dulus-free-7b0×Free for holders
dulus-free-20b0×Free for holders

Holder free tier

Hold a million. Spend none of it.

Keep at least 1,000,000 $DULUS as Fuel in your Dulus balance and you get 40 free messages every 24 hours on the free models. The balance is held, never spent.

  • Deposited Fuel is what counts. $DULUS sitting in your own wallet doesn’t: the threshold is read from your Dulus balance.
  • 40 messages per 24 h on dulus-free-9b, dulus-free-7b and dulus-free-20b, up to 2,048 output tokens each.
  • Nothing is debited. Free calls charge 0 Fuel. If paid calls take your balance under the threshold, the free tier waits until you are back above it.

600,000 Fuel

The threshold 1,000,000 Fuel

Below the threshold — hosted calls are paid per token

Free tier unlocked — 40 messages a day on dulus-free-*

Free messages
40 per 24 h
Charged per free call
0 Fuel
Your balance
Held, never spent

The token

$DULUS, in plain terms.

$DULUS is what Fuel is made of. You need it only for what Dulus hosts; your own keys and local models never touch it.

Network
Solana
Standard
Token-2022
Decimals
6
Launched on
pump.fun
As Fuel
1 $DULUS = 1 Fuel, plus 1% on every deposit

Mint address

9R8rrjXxcfQPmLTCLhmVpjr2uesjjkcgkinE6Lwdpump

Check the mint before you swap. A token with a similar name is not $DULUS.

Live chart

A live chart from DexScreener, loaded only when you ask for it.

Or open it on DexScreener

The chart is served by DexScreener. This page sends no request to dexscreener.com until you press Load live chart.

$DULUS is a utility and community token used to pay for Fuel on Dulus. Nothing on this site is financial advice.

Fuel or your own keys

Fuel is optional, by design.

Dulus runs on whichever model you choose. With your own keys or a local model, Dulus charges nothing. Fuel is only for what Dulus itself runs: the hosted models, the API and the AI inside Dulus OS.

Your own keys

From Dulus
Nothing
You pay
Your provider, directly, on your own account
Works with
Anthropic, OpenAI, Google Gemini, DeepSeek, Moonshot Kimi, Qwen, Z.ai GLM, Amazon Bedrock and more

Local models

From Dulus
Nothing
You pay
Nobody: your own machine does the work
Works with
Ollama, LM Studio, llama.cpp or any OpenAI-compatible local server

Dulus-hosted, on Fuel

From Dulus
Fuel, per token
You pay
$DULUS, deposited as Fuel, at 1×–4× by model
Powers
The dulus-* models, the API at control.dulus.ai and the AI in Dulus OS

Mix them in one project and switch with /model any time.

Questions

The fine print, in large print.

The questions a careful engineer asks before putting a key in production.

Do I need $DULUS to use Dulus?

No. The Dulus app is free, and with your own keys or a local model you never need Fuel. You need it only for the Dulus-hosted models, the API and the AI in Dulus OS.

What happens if a call fails?

You pay nothing. The hold is released in full and you get the error back: a 502 or 503 when the model call itself failed. A failed call is refunded completely.

Are cached tokens billed?

No. A call settles on its input, output and reasoning tokens. Cached tokens are free.

Why does it say 402?

Your Fuel balance couldn’t cover the hold for that call, so the model never ran and nothing was charged. Deposit more $DULUS, or ask for less output: a smaller max_tokens makes a smaller hold. The free-tier models also answer 402 while your balance is under 1,000,000 Fuel.

And 409?

That Idempotency-Key (or X-Request-ID) was already used. Dulus won’t run, or charge, the same request twice.

Can an API key read my balance?

No. Your balance and your deposit address are shown only to you, signed in to the Dulus app: the Fuel view on the desktop, or /fuel in the CLI. A key spends Fuel; it can’t look at it.

Is there a rate limit?

60 requests a minute per account by default, and any key can carry its own limit. Past it you get 429, the same code the free tier returns after your 40th message in 24 hours. A request can hold up to 512 messages.

Where do subscriptions live?

On dulus.online, where plans are sold through Dodo Payments. Their prices and contents live there, not on this site.

Is $DULUS an investment?

No. $DULUS is a utility and community token used to pay for Fuel on Dulus. Nothing on this site is financial advice, and Dulus makes no promise about its price.

Every token, accounted for.

Mint a key in the desktop app and call the hosted models from anything that speaks the OpenAI API. Or bring your own keys and pay Dulus nothing at all.

Plans live on dulus.online
esc

Actions