Tokener CA
Service online
Sign up
DocsSupply Token

Supply Token Guide

A usage guide for users supplying Token, covering API Key acquisition, inference framework parameters, preflight, startup, online confirmation, and troubleshooting.

Updated:

What Is the Provider Agent

token-provider-agent is a long-running command-line program that connects your machine to the platform, keeps it online, receives tasks, and invokes your local model to perform inference.

The web console handles creating API Keys, viewing nodes, activity records, and revenue. But the thing that actually turns your machine into a Provider node is this Agent.

Prerequisites

Before you begin, confirm the following are ready:

  • A machine that can run for extended periods
  • An installed and accessible local inference framework; LM Studio is used by default, and vLLM / SGLang / oMLX / llama.cpp / Ollama are also supported
  • In the default LM Studio mode, confirm the local service is running and exposes the OpenAI-compatible /v1/models and /v1/chat/completions
  • A Provider API Key (the next section explains how to obtain one)
  • The token-provider-agent binary provided by the platform

Device Recommendations

When choosing a model, look first at the GPU's available VRAM. Below are common single-GPU configuration recommendations; different inference frameworks, quantization precision, context length, and system usage all affect the actual loadable scale. Before officially starting up, still rely on the load result of your local inference framework and the Agent preflight as the source of truth.

GPU Available VRAMCommon GPU ExamplesRecommended Model
<= 12 GBEntry-level or older consumer GPUsNot recommended
>=16 GBGeForce RTX 4060 Ti 16GB, RTX 5060 Ti 16GB, RTX 4070 Ti SUPER, RTX 4080, RTX 4080 SUPER, RTX 5070 Ti, RTX 5080qwen3.5:9b
>=24 GBGeForce RTX 3090, RTX 4090, RTX 4090 D, RTX 5090 D v2gemma4:26b
>=32 GBGeForce RTX 5090, RTX 5090 D (the non-v2 32GB version)qwen3.6:35b

Software Downloads

Go to Downloads to download the Tokener CA Token related programs.

Download entries for the Tokener CA Token desktop and command-line versions on the downloads page

Regular Provider users should download the "Tokener CA Token Desktop" version first. The desktop version offers a graphical entry point, supports starting a Provider node, and is better suited for everyday use on local desktops and workstations.

Only when you need long-running daemons, scripted deployment, server deployment, or running in a headless environment should you download "Tokener CA Token Supply: Command-Line Version." If you choose the command-line version, the following examples uniformly use ./token-provider-agent in place of the actual executable file.

The local inference framework can also be installed from the "Third-Party Programs" list on the downloads page, which links to the installation pages. LM Studio is recommended first by default; professional nodes can then choose vLLM / SGLang / oMLX / llama.cpp / Ollama based on their machine and throughput needs.

Step 1: Obtain a Provider API Key

Log in to the web console, go to the Provider "API Keys" page, and create a new Provider API Key.

After creation, the page will directly display the key content (stp-...). Save it immediately; once you leave the page you cannot view it again.

We recommend using a separate key for each machine, which makes it easier to later trace node status, activity records, and revenue attribution.

Step 2: Confirm the Inference Framework and Model Are Available

When the Provider Agent starts, it checks whether the specified model is available in the inference framework. The default inference framework is LM Studio; before starting, confirm three things:

  • LM Studio has been installed from the LM Studio download page
  • The target model has been downloaded and loaded in LM Studio
  • The local API Server on the Developer page has been started; the default address is http://127.0.0.1:1234

The --model parameter still uses the platform-side model code, for example qwen3.5:9b. The console's Token supply example shows both the "model name" and the "model ID": the model name is usually used to search, download, or start the local inference framework; the model ID is the identifier returned by the local OpenAI-compatible /v1/models, used by the Provider Agent preflight and by actual requests.

For LM Studio installation, downloading models, and verification methods, see LM Studio Local Model Preparation.

If you use an OpenAI-compatible inference framework such as vLLM / SGLang / oMLX / llama.cpp, likewise confirm that the service exposes /v1/models and /v1/chat/completions, and have the corresponding inference framework address and inference framework API Key ready. During the startup preflight, the Agent selects a default model ID from the runtime_model_options of the platform's /platform/v1/models based on --api-format; if you selected a different model ID in the console, pass it explicitly via --runtime-model-id or PROVIDER_AGENT_RUNTIME_MODEL_ID.

If you already have an Ollama environment, you can also continue using --api-format ollama. In Ollama mode, you must first download the target model with ollama pull <model_name> and confirm it is visible locally via ollama ls.

For the installation, model name preparation, 256K context configuration, and availability check methods of different inference frameworks, see:

Step 3: Run the Pre-Startup Check

Before officially starting, run a preflight first:

Bash
./token-provider-agent preflight start --model qwen3.5:9b

The preflight only performs checks and will not start the service. Currently it confirms:

  • Whether the inference framework is accessible
  • Whether the specified model exists in the inference framework

Common causes when the preflight fails:

  • The inference framework is not started, or the address is incorrect
  • The model ID is misspelled, or the ID returned by the local /v1/models does not match what the console displays
  • The Ollama model has not been pulled locally, or the OpenAI-compatible service does not expose the upstream model resolved by the preflight
  • The platform model catalog does not provide runtime_model_options for the current --model and --api-format

For non-Ollama inference frameworks, you can explicitly pass the inference framework address and framework type during preflight:

Bash
./token-provider-agent preflight start --model gemma4:26b --base-url http://127.0.0.1:8000 --api-format omlx --runtime-model-id gemma-4-26b-a4b-it-4bit

If the upstream service requires authentication, you must pass --runtime-api-key during both preflight and startup, or set PROVIDER_AGENT_RUNTIME_API_KEY.

Step 4: Start the Provider Agent

The core startup command:

Bash
./token-provider-agent start --api-key stp-... --model qwen3.5:9b

Main parameters:

ParameterDescription
--api-keyThe Provider API Key created in the web console
--modelThe platform-side model code; in Ollama mode it usually equals the local model name directly

After a successful start, the process runs continuously, continuously performing the following work:

  • Registering or restoring the node
  • Reporting model and node status
  • Sending heartbeats to stay online
  • Receiving and executing inference tasks

So it is a long-running service, not a one-time command.

Additional Startup Parameters

If you need to customize the connection address or tune parameters, you can also use:

ParameterDescriptionDefault
--node-nameThis machine's display name on the platformCurrent hostname
--base-urlLocal inference framework address; ollama uses the native /api, other frameworks use the OpenAI-compatible /v1http://127.0.0.1:1234
--api-formatInference framework selection, one of lmstudio / vllm / sglang / omlx / llama.cpp / ollama, case-insensitivelmstudio
--runtime-model-idOptional: the model ID actually used by the local inference framework; when omitted, the platform catalog default is selectedNot set
--runtime-api-keyThe API Key for non-Ollama inference frameworks, passed as Authorization: Bearer to /v1/...Not set
--provider-base-urlControl plane addresshttps://provider.skypool.xyz
--relay-ws-urlRelay WebSocket addresswss://a.skypool.xyz
--state-pathLocal state file path, used to save node session state/tmp/provider-agent-state.json
--log-levelLog levelinfo
--p2p-enabledEnable P2P direct connection; can also explicitly pass true / falsefalse
--max-p2p-connectionsMaximum number of P2P connections8
--max-total-concurrencyMaximum number of concurrent tasks1
--prefill-progress-interval-msPrefill progress refresh interval before the first real output (milliseconds)15000

--ollama-base-url is still supported but deprecated; new configurations should uniformly use --base-url.

These startup parameters can also be passed via environment variables:

CLI ParameterEnvironment Variable
--api-keyPROVIDER_AGENT_API_KEY
--modelPROVIDER_AGENT_MODEL_CODE
--node-namePROVIDER_AGENT_NODE_NAME
--base-urlPROVIDER_AGENT_BASE_URL
--api-formatPROVIDER_AGENT_API_FORMAT
--runtime-model-idPROVIDER_AGENT_RUNTIME_MODEL_ID
--runtime-api-keyPROVIDER_AGENT_RUNTIME_API_KEY
--provider-base-urlPROVIDER_AGENT_PROVIDER_BASE_URL
--relay-ws-urlPROVIDER_AGENT_RELAY_WS_URL
--state-pathPROVIDER_AGENT_STATE_PATH
--log-levelPROVIDER_AGENT_LOG_LEVEL
--p2p-enabledPROVIDER_AGENT_P2P_ENABLED
--max-p2p-connectionsPROVIDER_AGENT_MAX_P2P_CONNECTIONS
--max-total-concurrencyPROVIDER_AGENT_MAX_TOTAL_CONCURRENCY
--prefill-progress-interval-msPROVIDER_PREFILL_PROGRESS_INTERVAL_MS

Boolean parameters support 1, true, yes, on to enable, and 0, false, no, off to disable. The full command list can be viewed via --help.

OpenAI-compatible Inference Framework Example

When your upstream service is compatible with the OpenAI Chat Completions API, just select the corresponding --api-format and start. The following uses the default recommended LM Studio as an example:

Bash
./token-provider-agent start --api-key stp-... --model gemma4:26b --base-url http://127.0.0.1:1234 --api-format lmstudio --runtime-model-id google/gemma-4-26b-a4b --runtime-api-key runtime-...

If the upstream service does not require authentication, you can omit --runtime-api-key. If you have not selected a different model ID, you can also omit --runtime-model-id; the Agent will resolve the platform model catalog default during the preflight stage and use the local /v1/models to verify it can be invoked.

Step 5: Confirm the Node Is Working Properly

You can confirm this from three angles.

Agent Process Status

If the process does not exit immediately after running start, the basic startup has passed.

Web Console Node List

Go to the Provider "Node List" page and confirm you can see:

  • Your node name
  • Node status
  • Most recent heartbeat time

If the heartbeat time keeps refreshing, the Agent is running online normally.

Activity Records and Revenue

Once requests start coming in, you can see the actual request processing on the "Activity Records" and "Revenue" pages. If requests have appeared in the activity records and the Agent is running stably, the main flow is connected.

Common Commands

View Help

Bash
./token-provider-agent --help

View Node Status

Bash
./token-provider-agent status --json

Confirms the current node status and lifecycle snapshot.

View Local Models

Bash
./token-provider-agent models --json

Confirms which local models the Agent can currently see.

Export Diagnostic Information

Bash
./token-provider-agent diagnose --json

Most useful when troubleshooting inference framework, connection, or local state problems.

View P2P Status

Bash
./token-provider-agent p2p status --json

Use this when troubleshooting direct connection or transport capabilities.

Stop

Bash
./token-provider-agent stop

If the Agent is running in the foreground, you can also stop it directly with Ctrl+C.

FAQ

Startup Reports Missing model code

The startup command is missing the --model parameter; add it and re-run:

Bash
./token-provider-agent start --api-key stp-... --model qwen3.5:9b

Preflight Fails, Model Not Found

The specified model is not available in the inference framework. Check in order:

  1. The inference framework is started
  2. The model ID is spelled correctly and can be seen in the local /v1/models
  3. The Ollama model has been pulled locally, or the OpenAI-compatible /v1/models can return the upstream model resolved by the preflight
  4. The runtime_model_options of the current platform model in the platform's /platform/v1/models includes the selected --api-format and model ID

You can use ./token-provider-agent models --json to view the list of models the Agent can currently recognize.

Node Does Not Appear in the Web Console

Check in order:

  1. Whether the Agent process exited directly
  2. Whether the API Key is correct
  3. Whether the node name was passed in successfully
  4. Whether there are obvious errors in the status and diagnose output

If the Agent starts successfully but the node list is empty, usually some step in the connection chain is not completed.

The Agent Is Running, but There Are No Requests

Don't immediately suspect a problem with model execution; check the following first:

  • Whether the node is online
  • Whether the heartbeat keeps updating
  • Whether the model has been reported successfully
  • Whether any traffic is currently allocated to your node

The web console's "Node List," "Activity Records," and "Revenue" are the three most direct observation entry points.

What to Do If the API Key Is Leaked

  1. Delete the old Provider API Key in the web console
  2. Create a new key
  3. Restart the Agent with the new key

Do not continue using a key you suspect has been leaked.

Minimal Getting-Started Flow

Follow the steps below in order to complete the most basic connection:

  1. Create a Provider API Key in the web console
  2. Have the token-provider-agent binary ready
  3. Confirm the local inference framework and target model are available
  4. Run ./token-provider-agent preflight start --model qwen3.5:9b
  5. Run ./token-provider-agent start --api-key stp-... --model qwen3.5:9b
  6. View the "Node List" in the web console
  7. View the "Activity Records" and "Revenue"