← Back to Documentation

VERI Tenant User Guide

Complete guide for tenant onboarding, agent access, billing, payments, and API usage

Version 2026.3.28 — For tenants and API consumers
Veritaseum Intelligence Global IP Patent Portfolio
US11196566 · US11895246 · US12231579 · JP6813477B2 · JP7204231 · JP7533974 · JP7533983 · JP7736305 · EP/UK/HK/UP 4 148 642

1. Getting Started

What You Get

Every VERI tenant receives:

VERI Login Page
VERI Login Page

Prerequisites

2. Account Creation

Self-Service Signup

Via Dashboard

Signup Wizard
Signup Wizard
  1. Go to https://veagents-mac-studio.tail54223a.ts.net/veri
  2. Click "Don't have an account? Sign up"
  3. Complete the 4-step wizard:
    • Account — Enter email and password
    • Plan — Select Free, Pro, or Enterprise
    • Wallet — Connect MetaMask/Rabby (required for paid plans)
    • Confirm — Review and create
  4. Save your API key — shown once on the success screen

Via API

curl -X POST https://veagents-mac-studio.tail54223a.ts.net/veri/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "password": "YourSecurePass!",
    "plan_id": "free",
    "wallet_address": "0x..."
  }'

Response:

{
  "ok": true,
  "user": { "id": "uuid", "email": "you@example.com", "plan_id": "free" },
  "api_key": "oc_live_...",
  "api_key_prefix": "oc_live_xxxx",
  "expires_at": "2026-04-24T...",
  "provisioning": "in_progress"
}
Important: Save your api_key immediately. It is shown only once.

What Happens After Signup

Your account is provisioned automatically (~30-60 seconds):

  1. Memory allocation on a compute node
  2. Agent clone (VERI fork with specialist agents)
  3. Docker sandbox with Tailscale networking
  4. Billing period opened
  5. Egress firewall configured (GitHub + approved endpoints)
  6. Tailscale identity assigned (100.x.x.x)

You can start using the API immediately. The sandbox provisions in the background.

3. Accessing Your Agent

Dashboard (Web UI)

VERI Dashboard Overview
VERI Dashboard Overview
  1. Go to https://veagents-mac-studio.tail54223a.ts.net/veri
  2. Log in with your email and password
  3. Navigate to:
    • Chat — Talk to your agent directly
    • Agents — View your 7 specialist agents
    • Amplify — Manage social media content and approvals
    • Agent Comms — View your agent's identity and communicate with other agents
    • Billing — Usage, invoices, API keys
    • Fund Agent — Fund your account with USDC (Base, Ethereum, or Solana)
    • Sessions — Conversation history
Agent Fleet View
Agent Fleet View
Sessions View
Sessions View

API Access

Your agent is accessible via an OpenAI-compatible API.

Authentication

All API requests require a Bearer token:

Authorization: Bearer oc_live_your_key_here

Or use session cookies from the dashboard login.

Chat Completions

curl --max-time 120 \
  https://veagents-mac-studio.tail54223a.ts.net/veri/api/v1/chat/completions \
  -H "Authorization: Bearer oc_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openclaw",
    "messages": [
      {"role": "user", "content": "Analyze this Python function for bugs..."}
    ],
    "stream": true
  }'

The model field is routed automatically — your agent selects the best available model based on the task.

Timeouts — Important

Large models (27B–122B) can take 15–30 seconds for first token on complex prompts. Set your HTTP client timeout accordingly:

Model SizeTypical First TokenFull Response (10K tokens)Recommended Timeout
1B–9B< 1s2–5s30s
27B2–5s5–15s60s
80B5–10s15–25s120s
122B10–20s20–40s120s

Always use "stream": true — streaming returns the first token as soon as it's generated, so your client receives data immediately even on large models. Without streaming, the entire response must generate before any data is sent.

Client timeout configuration:

# Python (requests)
response = requests.post(url, json=payload, headers=headers, timeout=120, stream=True)

# Python (httpx)
async with httpx.AsyncClient(timeout=120) as client:
    response = await client.post(url, json=payload, headers=headers)
// Node.js (fetch)
const response = await fetch(url, {
  method: "POST",
  headers,
  body: JSON.stringify(payload),
  signal: AbortSignal.timeout(120_000), // 120 seconds
});

// axios
const response = await axios.post(url, payload, { headers, timeout: 120000 });
# curl
curl --max-time 120 --connect-timeout 10 ...
If you get no response or a timeout error, your client timeout is likely too short. The server-side proxy allows 120 seconds. Set your client to at least 120 seconds for reliable operation.

Streaming

Set "stream": true for Server-Sent Events (SSE) streaming (recommended for all requests):

data: {"choices":[{"delta":{"content":"The function has..."}}]}
data: {"choices":[{"delta":{"content":" a potential race condition"}}]}
data: [DONE]

Streaming eliminates the "no response" problem — you get data as soon as the first token generates, even if the full response takes 20+ seconds.

4. Agent Engine

The Agent Engine lets your agent read, write, and edit files, run commands, and search code — like having a developer on call. Describe what you want in plain English.

Using Agent Mode in the Dashboard

Agent Mode Chat Interface
Agent Mode Chat Interface

Agent Mode is the default in the Chat view. Just type your task:

The agent picks the right tools, executes them, and shows you what it's doing live: "Reading main.py", "Running: pytest -v", "Editing server.js".

Working Folder

Use the Folder field in the toolbar to point the agent at your project. The agent can only access files inside this folder (security boundary). Leave it blank to use your home directory.

Tools

ToolWhat it does
bashRuns shell commands (dangerous patterns blocked)
read_fileReads files with line numbers
write_fileCreates or overwrites files
edit_fileTargeted find-and-replace edits
globFinds files by name pattern (e.g. **/*.py)
grepSearches file contents with regex

Chat Mode

Toggle Agent / Chat to switch to simple chat without tools — for quick questions.

Agent API

# Run an agent task (SSE stream)
curl -N https://your-dashboard/api/v1/agent/run \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Find syntax errors in *.py files", "working_dir": "~/project"}'

# Stop a running task
curl -X POST https://your-dashboard/api/v1/agent/stop \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"session_id": "id-from-x-session-id-header"}'

# Health check
curl https://your-dashboard/api/v1/agent/health

SSE event types: text_delta (streaming text), tool_call (tool invoked), tool_result (tool output), done (finished), error (failed).

5. Social Media (Amplify)

Amplify - Connected platforms, content drafts, and approval queue
Amplify — Connected platforms, content drafts, and approval queue

The Amplify tab lets you manage social media content across 8 platforms. VERI drafts content for your approval — nothing is ever posted autonomously.

What you can do:

Important: All social media posting requires your explicit approval. The agent drafts content but never publishes without human sign-off.

6. Agent-to-Agent Communication

Agent Comms - VACP identity, peer discovery, encrypted negotiations
Agent Comms — VACP identity, peer discovery, encrypted negotiations

The Agent Comms tab shows your agent's decentralized identity and lets it communicate with other agents on the VACP network.

What you can do:

Your agent can autonomously discover counterparties and negotiate terms, but settlements require your approval.

7. API Reference

Authentication Endpoints

MethodPathAuthDescription
POST/api/auth/loginNoEmail/password login
POST/api/auth/logoutYesEnd session
GET/api/auth/meYesCurrent user info
POST/api/auth/registerNoCreate account
GET/api/auth/nonce?wallet=0x...NoGet wallet verification nonce
POST/api/auth/verify-walletNoVerify wallet ownership
POST/api/auth/verify-nftNoCheck SmartMetal NFT balance

Agent Endpoints

MethodPathAuthDescription
POST/api/v1/chat/completionsYesChat with your agent (OpenAI-compatible)
GET/api/tenant/agentYesGet agent status / trigger provisioning
POST/api/tenant/agent/syncYesRe-sync agent with latest template

Billing Endpoints

MethodPathAuthDescription
GET/api/tenant/billingYesBilling dashboard (current + history)
GET/api/tenant/usageYesUsage summary + daily breakdown
GET/api/tenant/patent-usageYesPatent IP usage summary
GET/api/tenant/quotaYesCurrent quota status
GET/api/tenant/plan-featuresYesPlan feature details
GET/api/tenant/memoryYesMemory allocation info

API Key Management

MethodPathAuthDescription
GET/api/tenant/keysYesList API keys
POST/api/tenant/keysYesCreate new API key
DELETE/api/tenant/keys/:keyIdYesRevoke an API key

File Management

MethodPathAuthDescription
GET/api/tenant/filesYesList uploaded files
GET/api/tenant/files?node_id=localYesFiles by node
GET/api/tenant/files/by-nodeYesStorage breakdown by node
DELETE/api/tenant/filesYesDelete a file

Login Example

# Login and get session cookie
curl -c cookies.txt -X POST \
  https://veagents-mac-studio.tail54223a.ts.net/veri/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "YourPass!"}'

# Use session cookie for subsequent requests
curl -b cookies.txt \
  https://veagents-mac-studio.tail54223a.ts.net/veri/api/tenant/billing

Create Additional API Key

curl -X POST \
  https://veagents-mac-studio.tail54223a.ts.net/veri/api/tenant/keys \
  -H "Authorization: Bearer oc_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"label": "production-key"}'

Response:

{
  "ok": true,
  "id": "key-uuid",
  "key": "oc_live_new_key_here",
  "prefix": "oc_live_xxxx",
  "label": "production-key"
}

Check Quota

curl https://veagents-mac-studio.tail54223a.ts.net/veri/api/tenant/quota \
  -H "Authorization: Bearer oc_live_your_key"

Response:

{
  "ok": true,
  "plan": "free",
  "compute_used_tokens": 45200,
  "compute_quota_tokens": 1000000,
  "compute_pct": 4.52,
  "storage_used_gb": 0.002,
  "storage_quota_gb": 0.5,
  "over_quota": false
}

8. Billing & Payments

How Billing Works

Billing Dashboard
Billing Dashboard

Billing has three layers:

LayerWhat's MeteredRate
ComputeInput/output tokens, tool execution timeLocal: free. Hosted: $1-3/M tokens
StorageMemory, conversations, sandbox, uploads$0.25-1.00/GB/month
IP LicensingPatent-protected features (sovereign risk, P2P swaps)$0.10-2.00/use

Invoice Cycle

Payment Methods

USDC payments accepted on three chains:

ChainUSDC ContractSpeedGas FeeBest For
Base L20x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913~2 seconds< $0.01Most payments (recommended)
Ethereum L10xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48~12-15 min$2-15Larger amounts
SolanaEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v~0.4 seconds< $0.001Ultra-fast, lowest fees

Fund Agent Tab

The Fund Agent tab in the dashboard is the easiest way to fund your account. It sits right next to Billing in the navigation and is designed to be self-contained — anyone landing on it knows exactly how to fund the agent without prior context.

Fund Agent - Chain selector, deposit address with QR code, step-by-step guide, recent deposits, and FAQ
Fund Agent — Chain selector, deposit address, QR code, step-by-step guide, recent deposits, and FAQ

The tab includes:

  1. Hero Balance Ticker — Current USDC balance displayed prominently at the top
  2. Choose Your Chain — Pill toggle between Base (recommended), Ethereum, and Solana with color-coded speed, fee, and network stats for each chain
  3. Send USDC to This Address — Your deposit address with one-click copy, QR code for mobile scanning, USDC contract reference, block explorer link, and a warning banner about sending only USDC (other tokens may be permanently lost)
  4. Step-by-Step Guide — Chain-specific numbered instructions with a visual connector line (e.g., "Open wallet > Switch to Base > Select USDC > Paste address > Confirm")
  5. Recent Deposits — Live feed of your deposits with chain-colored badges and transaction links
  6. FAQ — Collapsible section answering: "What is USDC?", which chain to use, deposit timing, withdrawals, and wrong-token warnings

How to Fund Your Agent

  1. Go to Fund Agent in the dashboard
  2. Choose your chain (Base recommended for lowest fees)
  3. Copy the deposit address or scan the QR code
  4. Send USDC from your wallet to the deposit address
  5. Your deposit appears in Recent Deposits and your balance updates automatically

Payments are monitored automatically — no manual reporting needed.

Important: Only send USDC to the deposit address. Sending ETH, USDT, DAI, or other tokens may result in permanent loss.

Viewing Invoices

curl https://veagents-mac-studio.tail54223a.ts.net/veri/api/tenant/billing \
  -H "Authorization: Bearer oc_live_your_key"

9. Sandbox & Networking

Your Sandbox

Each tenant gets an isolated Docker container with:

ResourceFreeProEnterprise
Memory1 GB4 GB8 GB
CPUs0.524
PID limit256512512
Storage0.5 GB5 GB50 GB

Network Access

Your sandbox has restricted outbound networking:

Allowed:

Blocked:

Tailscale Identity

Your container has its own Tailscale node identity:

To request additional outbound destinations, contact the admin.

10. Plans & Quotas

Usage Meters and Plan Quotas
Usage Meters and Plan Quotas

Plan Comparison

FeatureFreePro ($49/mo)Enterprise ($199/mo)
Tokens/month1M50M500M
Storage0.5 GB5 GB50 GB
ModelsLocal basic (9B/27B)Local extended (up to 80B)Full stack (all models + DGX Spark)
SandboxNoYesYes (dedicated)
SubagentsNoYesYes
IP featuresNoYesYes
File uploads5/upload25/upload100/upload
Private memoryNoYesYes
Filesystem ACLNoNoYes
Cross-node syncNoNoYes

Rate Limits

LimitFreeProEnterprise
Requests/minute1005,000Unlimited
Requests/day1060120

Quota Enforcement

11. Security & Isolation

What's Isolated

Every tenant has complete isolation:

LayerIsolation Method
ComputeSeparate Docker container per tenant
MemorySeparate filesystem directories (mode 700)
NetworkPer-tenant Tailscale identity + iptables firewall
SessionsSeparate conversation history
Agent stateForked agent with firewall between tenants
CredentialsNo shared API keys, no shared secrets
EventsNo shared event streams

What Your Agent Cannot Do

Wallet Security

Wallet Security Panel
Wallet Security Panel

The platform wallet is strictly read-only for all agents:

12. Troubleshooting

Cannot Login

API Key Not Working

Quota Exceeded

Sandbox Not Provisioned

Cannot Reach External Service

API Returns No Response / Timeout

This is almost always a client-side timeout issue, not a server problem.

# Verify the API is responding (should return within 1-2 seconds)
curl --max-time 10 \
  https://veagents-mac-studio.tail54223a.ts.net/veri/api/health/deep \
  -H "Authorization: Bearer oc_live_your_key"

If the health check works but chat doesn't, your timeout is too short.

Payment Not Detected

Quick Reference

Base URL

https://veagents-mac-studio.tail54223a.ts.net/veri

Authentication Header

Authorization: Bearer oc_live_your_key_here

Common API Calls

# Chat with your agent
curl $BASE/api/v1/chat/completions \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openclaw","messages":[{"role":"user","content":"Hello"}]}'

# Check your usage
curl $BASE/api/tenant/usage -H "Authorization: Bearer $KEY"

# Check your quota
curl $BASE/api/tenant/quota -H "Authorization: Bearer $KEY"

# List your API keys
curl $BASE/api/tenant/keys -H "Authorization: Bearer $KEY"

# Get billing info
curl $BASE/api/tenant/billing -H "Authorization: Bearer $KEY"

Support

For issues or egress rule requests, contact the platform admin.