Dimewit docs

Buy AI usage with SOL or USDC, see the exact model and price before every request, and stake $DIME to earn credits from trading fees.

Overview

Dimewit runs on Solana, launches on Pump.fun, takes SOL or USDC, and burns through Jupiter.

Models

Models from Claude, ChatGPT, DeepSeek, GLM and Grok.

Only the latest models of each family are offered: the flagship and the newest fast, cheaper tier where the family has one. The exact model ids and their prices come from the live model list below and from /api/models.

Quickstart

  1. Sign in. Open the app and sign one message with your Solana wallet. It moves no funds and lasts 14 days.

  2. Get credits. Top up from $5 in SOL or USDC, or buy cheaper credits from stakers on the credit book.

  3. Use them. Chat in the app, or create an API key and call the API below.

Credits

1 credit buys $1 of AI usage at the listed price: the AI provider’s cost plus our markup. Credits are a balance in Dimewit, not a token. Every credit is backed by a payment we actually received: a top-up, or staker-pool USDC.

Bought credits come from top-ups or the credit book and can only be spent. Earned credits come from staking and can be spent or listed on the book. Spending uses bought credits first. Spending has no extra fee: fees were paid when the credits were made or bought.

A request reserves credits before it is sent, then charges only the verified usage and releases the rest. Each request gets a receipt with the model served, tokens and price.

Top-ups

Pick a dollar amount, minimum $5, and confirm one transaction. You pay the amount plus a product fee of 3%. Staking lowers it:

$DIME stakedTop-up fee
03.0%
100,0002.6%
1,000,0002.2%
5,000,0001.8%

Pay in SOL or USDC. A SOL quote uses the live SOL/USD price and is valid for about a minute. The payment is one plain transfer that you sign once, and the credits appear as soon as it is final on Solana, usually within a minute.

Credit book

Stakers can sell earned credits below $1. Listings are priced from $0.50 to $0.99 per credit, in steps of $0.01, with at least 5 credits per listing. Listing, repricing and cancelling need no signature.

Buyers pay the ask plus a 5% platform fee, and the payment goes straight to the sellers in one transaction, filling up to 8 listings at once. Example: 100 credits at $0.80 cost $80 to the sellers plus a $4 fee, so $84 buys $100 of usage.

100 credits at $0.80$80.00
Platform fee, 5%$4.00
You pay$84.00
Usage bought$100.00

Staking

Stake $DIME in the staking program to earn credits every hour and to lower your top-up fee. Half of every Pump.fun creator fee funds staker rewards, plus the staker share of every product fee. Each hour’s rewards are shared by how much you staked and for how long during that hour, and arrive as earned credits a few minutes after the hour closes, once its record is final on-chain.

Unstaking is instant: your tokens come back in the same transaction, with no waiting period. Unstaking works even while new stakes are paused. Tokens earn only for the time they are staked.

Rewards depend on trading volume and sales. No volume means no rewards, so there is no fixed APY.

Fees and burn

Every fee is split by fixed rules, paid in the same transaction as your payment. The burn wallet buys $DIME and burns it. The rewards wallet becomes hourly staker credits.

Pump.fun creator fee
Credit book fee (5%)

The Pump.fun creator-fee split is set once at launch: 50% to the burn wallet and 50% to the staker rewards wallet. On top-ups, 1.5% of the amount always goes to the burn, at every fee tier. The rest of the fee goes 60% to staker rewards and 40% to operations. If nobody is staking in an hour, that hour’s staker rewards carry over to the next hour.

Before the token exists, the burn wallet holds its share and buys $DIME once it launches.

Token

$DIME launches on Pump.fun. The address and buy link appear here as soon as it is out.

Buy DIME

Trust

The one program Dimewit uses, what it can and can never do, and what the owner can change is on Contracts. The staking program is not audited and its owner can upgrade it. Read the risk disclosure before you stake.

Use your key

Create a key in the app under API keys. The same key works for chat in the app and in any tool that accepts a custom API address plus key. Every request made with it spends your Dimewit credits, at the same prices and with the same receipts as the app.

OpenAI-style base URLhttps://api.dimewit.app/v1
Anthropic-style base URLhttps://api.dimewit.app
Key headerAuthorization: Bearer, or x-api-key
Endpoints/v1/chat/completions · /v1/messages · /v1/models · /v1/balance · /v1/usage
MCP serverhttps://api.dimewit.app/mcp
Output per requestup to 8,192 tokens

Pick a model

Model ids come from the live list, the same one GET /v1/models returns. Pick one and every example below uses it.

Reading the model list…

Connect a tool

Claude Code talks to the Anthropic-style address. Export these in your shell, then run claude. Claude models suit it best; the other models in the list work too.

shell
export ANTHROPIC_BASE_URL="https://api.dimewit.app"
export ANTHROPIC_AUTH_TOKEN="$DIMEWIT_API_KEY"
export ANTHROPIC_MODEL="<model id from /v1/models>"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="<model id from /v1/models>"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

To keep it, put the same values in ~/.claude/settings.json, or in .claude/settings.local.json for one project. Never put the key in a settings file you commit.

~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.dimewit.app",
    "ANTHROPIC_AUTH_TOKEN": "psk_your_key",
    "ANTHROPIC_MODEL": "<model id from /v1/models>",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "<model id from /v1/models>",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

ANTHROPIC_AUTH_TOKEN sends the key as a Bearer header; ANTHROPIC_API_KEY sends it as x-api-key and works the same. In the VS Code extension, set these under claudeCode.environmentVariables.

MCP server

Give any MCP client your models and credits as tools. The server speaks Streamable HTTP at https://api.dimewit.app/mcp and takes your key as a Bearer header. Tools: list_models, chat (call a model, with an optional max_cost), get_balance and get_usage.

shell
claude mcp add --transport http dimewit https://api.dimewit.app/mcp \
  --header "Authorization: Bearer $DIMEWIT_API_KEY"

Add --scope user to use it in every project. Check it with /mcp inside Claude Code.

Each chat call is a normal API request: same prices, receipts, caps and rate limits as any other call with that key.

Spend caps

Set caps per key in the app under API keys → Caps: a daily cap, a monthly cap (UTC day and month) and a most-per-request amount. Leave one empty for no cap. Any request can also carry its own ceiling in US dollars:

  1. Header x-dimewit-max-cost: 0.05 on /v1/chat/completions or /v1/messages (works from any client that can add headers).
  2. Or a top-level body field "max_cost": "0.05" (OpenAI SDKs: extra_body; it is removed before the model sees the request).
shell · capped request
curl https://api.dimewit.app/v1/chat/completions \
  -H "Authorization: Bearer $DIMEWIT_API_KEY" \
  -H "x-dimewit-max-cost: 0.05" \
  -H "Content-Type: application/json" \
  -d '{"model": "<model id from /v1/models>", "messages": [{"role": "user", "content": "Hello"}]}'

Before anything is sent, Dimewit holds the most the request could cost. If that is above the ceiling, the output limit is lowered until it fits (the answer carries X-Dimewit-Max-Tokens); if not even the prompt fits, the request is refused with 402 and PS-Q01, and nothing is charged. A spent daily or monthly cap answers 402 with PS-Q02 or PS-Q03 and X-Dimewit-Limit-Reset (seconds until it resets). You are always charged the real usage, never the hold.

Rate limits

Requests per minute, per key60 (set 1 to 600 under Caps)
Running at once, per key8
All your keys together240/min · 24 at once
Output per requestup to 8,192 tokens

Over a limit the API answers 429 in the format you called (error type rate_limit_error) with PS-Q04 or PS-Q05 and a Retry-After header in seconds. Nothing is charged. Successful answers carry x-ratelimit-limit-requests, x-ratelimit-remaining-requests and x-ratelimit-reset-requests (and the anthropic-ratelimit-requests-* equivalents). If the whole service is at capacity you get 503 with PS-Q06 and Retry-After. Claude Code and the official SDKs wait and retry on their own.

GET /v1/balance and GET /v1/usage take the same key and return your spendable credit and this key's caps, spend and recent requests.

Coming soon

Not available yet. Everything above works today with the official OpenAI and Anthropic SDKs, the MCP server and plain HTTP.

  • Coming soonTypeScript SDKA typed client for Node, Bun, Deno, edge runtimes and the browser: streaming, both request styles, per-request cost ceilings, balance and usage, with safe retries built in.
  • Coming soonSign in with DimewitLet other apps ask your users to sign in and spend their own credits, with a spending limit the user approves.
  • Coming soonTools platformTools your models and agents can call, paid from the same credits: web search and page reading, chain reads, code sandboxes, deploys and email.

Keep the key private

  • Anyone holding the key can spend your credits. Never paste it in a public repo, chat, screenshot or browser page others can see.
  • Store it in an environment variable or a local settings file that is not committed.
  • Revoke it anytime in the app under API keys; it stops working at once. Create one key per tool so you can revoke one without the others.

Receipts and retries

Check usage receipts in the app after a request. They record the model served, token counts, price, and charge. Prompt text and generated responses are not stored in the billing receipt.

Keep the X-Request-Id response header. Reusing an idempotency key cannot run the same request twice. Because generated text is not saved for replay, check the receipt instead of expecting a second copy of the answer.

If a connection ends before usage can be verified, its credit reservation stays in place while the request is investigated. Do not send a new request merely to check whether the first one succeeded.

PS-S03
AI supply is not connected.
PS-L01
There are not enough available credits for the reservation.
PS-L13
New AI requests are paused.
PS-L14
The request cannot be priced safely.
PS-L15
The request is already recorded. Check its receipt.

Data retention

Zero data retention.

We keep the receipt, never the conversation.

  • Prompts, files and answers pass through to the model and back. We never write them to a database, a log or a backup.
  • A receipt keeps only billing facts: model, token counts, price, charge, time taken, and a one-way fingerprint that stops a retry from being charged twice.
  • In-app chats live in your browser tab and are gone when you close it.

Protocol details, with diagrams of every money flow, are on Protocol. Prices per model are on Models, and the credit book on Market.