Register an Account on VTok.ai

  • Go to https://vtok.ai/ to register an account
  • Navigate to Token Management in the left menu -> Add Token
  • For top-up, contact the group admin

Configure OpenClaw

  • Edit ~/.openclaw/openclaw.json
  • Find the models section and replace it with the following:
  • Replace YOUR_TOKEN below with the token you just created

  "models": {
    "providers": {
      "vtok-claude": {
        "baseUrl": "https://vtok.ai",
        "apiKey": "YOUR_TOKEN",
        "auth": "token",
        "api": "anthropic-messages",
        "authHeader": true,
        "models": [
          {
            "id": "claude-opus-4-5-20251101",
            "name": "claude-opus",
            "api": "anthropic-messages",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          },
          {
            "id": "claude-opus-4-6",
            "name": "claude-opus-4-6",
            "api": "anthropic-messages",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          },
          {
            "id": "claude-haiku-4-5-20251001",
            "name": "claude-haiku",
            "api": "anthropic-messages",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          },
          {
            "id": "claude-sonnet-4-5-20250929",
            "name": "claude-sonnet",
            "api": "anthropic-messages",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          }
        ]
      },
      "vtok-openai": {
        "baseUrl": "https://vtok.ai/v1",
        "apiKey": "YOUR_TOKEN",
        "auth": "token",
        "api": "openai-responses",
        "authHeader": true,
        "models": [
          {
            "id": "gpt-5.3",
            "name": "gpt-5.3",
            "api": "openai-responses",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 16384
          },
          {
            "id": "gpt-5.2",
            "name": "gpt-5.2",
            "api": "openai-responses",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 16384
          },
          {
            "id": "gpt-5.1",
            "name": "gpt-5.1",
            "api": "openai-responses",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 16384
          }
        ]
      },
      "vtok-gemini": {
        "baseUrl": "https://vtok.ai/v1beta",
        "apiKey": "YOUR_TOKEN",
        "auth": "token",
        "api": "google-generative-ai",
        "authHeader": true,
        "models": [
          {
            "id": "gemini-2.5-flash",
            "name": "gemini-2.5-flash",
            "api": "google-generative-ai",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 1000000,
            "maxTokens": 8192
          },
          {
            "id": "gemini-3-flash-preview",
            "name": "gemini-3-flash-preview",
            "api": "google-generative-ai",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 1000000,
            "maxTokens": 8192
          },
          {
            "id": "gemini-3-pro-preview",
            "name": "gemini-3-pro-preview",
            "api": "google-generative-ai",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 1000000,
            "maxTokens": 8192
          }
        ]
      }
    }
  }


Edit ~/.openclaw/openclaw.json

Then replace the agents model section with the following:


 "agents": {
    "defaults": {
      "maxConcurrent": 4,
      "model": {
        "primary": "vtok-claude/claude-sonnet"
      }
    }
  }