Protocol

Smart contracts governing the compute marketplace.

Contracts

Contract
Address
Purpose

Nexus

0x2b0cC6058313801D5feb184a539e3a0C5A87a6a1

Source/task registry, provider registration

Controller

0x8661F4B9c30e07A04d795A192478dfD905625a1D

Task publishing and confirmation

Terminal

0xaEBC7b712D38Fc4d841f0732c21B8774339869D3

Provider-master wallet pairing

Vault

0xa5c582254AA313528898311362bc698b041580cC

Staking, payments, escrow

How They Work Together

Client publishes Source → Nexus
Provider registers → Nexus + Terminal
Client publishes Task → Nexus (payment → Vault)
Provider responds → Nexus
Task finalized → Vault releases payment

Contract Reference

ABIs: Nexusarrow-up-right | Controllerarrow-up-right | Terminalarrow-up-right | Vaultarrow-up-right

Data Structures

SourceParams

Field
Type
Description

client

address

Owner address

imageMetadataUrl

string

Docker config URL

imageEnvironments

uint8

Supported hardware (bitmask)

minPayment

uint256

Min OGPU per task

minAvailableLockup

uint256

Required provider stake

maxExpiryDuration

uint256

Max task duration

privacyEnabled

bool

Encrypt task data

deliveryMethod

uint8

0=FirstResponse, 1=Manual

TaskParams

Field
Type
Description

source

address

Source contract

config

string

Task config JSON

expiryTime

uint256

Deadline timestamp

payment

uint256

OGPU payment

ResponseParams

Field
Type
Description

task

address

Task contract

provider

address

Provider address

data

string

Result data

payment

uint256

Claimed payment

Source Lifecycle

Contract
Function
Description

Nexus

publishSource(SourceParams)

Deploy source

Nexus

updateSource(source, SourceParams)

Update source config

Nexus

register(source, provider, env)

Provider registers for source

Nexus

unregister(source, provider)

Provider unregisters

Task Lifecycle

Contract
Function
Description

Controller

publishTask(TaskParams)

Submit task with payment

Nexus

attempt(task, provider, suggestedPayment)

Provider signals intent

Nexus

submitResponse(ResponseParams)

Provider submits result

Controller

confirmResponse(response)

Required if deliveryMethod=Manual

Controller

cancelTask(task)

Cancel pending task

Wallet Pairing

Contract
Function
Description

Terminal

announceProvider(provider, amount)

Master announces provider address

Terminal

announceMaster(master)

Provider announces master address

Both must announce each other. Once matched, master can manage vault on provider's behalf.

Vault Operations

Contract
Function
Description

Vault

deposit(account)

Deposit OGPU

Vault

lock(amount)

Lock stake

Vault

unbond(amount)

Start unbonding

Vault

withdraw(amount)

Withdraw balance

Vault

claim()

Claim rewards

Interacting with the Protocol

Method
Use Case

Client App

Source and task publishing over UI

Provider Suite

Task execution

Management dApp

Registration, monitoring, vault management

SDK

Programmatic source and task publishing

Direct RPC

Full control via contract calls

All contracts are deployed on the OpenGPU Blockchain and can be interacted with using standard EVM tooling.

See How It Works for the task lifecycle.

Last updated