Compute

Decentralized AI inference, priced for builders.

Call open models over a decentralized GPU marketplace. Pay per request with on-chain settlement. OpenAI-compatible API means you keep your existing SDK and swap the base URL.

Try it without code

§ 01 · Quickstart

Recommended

Start from the Compute TypeScript Starter Kit

End-to-end example showing account setup, provider acknowledgement, and inference calls. Clone, set a private key, and run.

Clone starter kit

Or follow the 5 steps below to wire it up yourself.

01

Install the CLI and OpenAI SDK

bash
# Node 20+ required
pnpm add @0gfoundation/0g-compute-ts-sdk -g
npm install openai
02

Provision an account

bash
# set PRIVATE_KEY in your shell env first (testnet wallet funded via faucet.0g.ai)
0g-compute-cli setup-network
0g-compute-cli login
0g-compute-cli deposit --amount 3 # 3 OG minimum to create the ledger
0g-compute-cli inference list-providers # note a provider address to use
03

Transfer funds and generate an API key

bash
# use a provider address from list-providers, e.g. the Qwen 2.5 7B testnet provider:
export PROVIDER=0xa48f01287233509FD694a22Bf840225062E67836
0g-compute-cli transfer-fund --provider $PROVIDER --amount 1
0g-compute-cli inference acknowledge-provider --provider $PROVIDER
0g-compute-cli inference get-secret --provider $PROVIDER
# prints an app-sk-... secret and the service URL, copy both
04

Call a model with the OpenAI SDK

ts
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: `${process.env.ZG_SERVICE_URL}/v1/proxy`,
apiKey: process.env.ZG_API_SECRET, // the app-sk-... from step 03
})
const completion = await client.chat.completions.create({
model: 'qwen/qwen-2.5-7b-instruct', // or any model listed on compute-marketplace.0g.ai
messages: [{ role: 'user', content: 'Hello, frontier.' }],
})
console.log(completion.choices[0].message.content)
05

Check your balance

bash
0g-compute-cli get-account
# or view the dashboard at compute-marketplace.0g.ai

Going deeper

Prefer wallet-based auth inside your app instead of a generated API key? Use the broker SDK directly:

import { ethers } from 'ethers'
import { createZGComputeNetworkBroker } from '@0gfoundation/0g-compute-ts-sdk'
const provider = new ethers.JsonRpcProvider('https://evmrpc-testnet.0g.ai')
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider)
const broker = await createZGComputeNetworkBroker(wallet)
const { endpoint, model } = await broker.inference.getServiceMetadata(PROVIDER_ADDRESS)
const headers = await broker.inference.getRequestHeaders(PROVIDER_ADDRESS)
const res = await fetch(`${endpoint}/chat/completions`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', ...headers },
body: JSON.stringify({ model, messages: [{ role: 'user', content: 'Hello!' }] }),
})

§ 02 · Compute SDKs

§ 03 · Deep dive

§ 04 · Tutorials

§ 05 · Built with Compute

View showcase →