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
modelssection and replace it with the following: - Replace
YOUR_TOKENbelow with the token you just created
Copy
"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:
Copy
"agents": {
"defaults": {
"maxConcurrent": 4,
"model": {
"primary": "vtok-claude/claude-sonnet"
}
}
}