Open source program

ICPX Payments IDL.

Solana escrow instructions for GPU jobs, streaming receipts, completion and disputes.

Instructions

createGpuJob

variant 0

3 accounts

Accounts

requestermut signer
jobmut account
systemProgramread account

Args

argsCreateGpuJobArgs

fundJob

variant 1

6 accounts

Accounts

requestermut signer
jobmut account
systemProgramread account
requesterTokenAccountmut account
escrowTokenAccountmut account
tokenProgramread account

Args

None

acceptJob

variant 2

2 accounts

Accounts

providerread signer
jobmut account

Args

None

settleStream

variant 3

6 accounts

Accounts

receiptAuthorityread signer
jobmut account
providerPaymentAccountmut account
protocolFeeAccountmut account
escrowTokenAccountmut account
tokenProgramread account

Args

receiptGpuStreamReceipt

completeJob

variant 4

7 accounts

Accounts

authorityread signer
jobmut account
providerPaymentAccountmut account
requesterRefundAccountmut account
protocolFeeAccountmut account
escrowTokenAccountmut account
tokenProgramread account

Args

receiptGpuStreamReceipt

cancelExpiredJob

variant 5

4 accounts

Accounts

jobmut account
requesterRefundAccountmut account
escrowTokenAccountmut account
tokenProgramread account

Args

None

openDispute

variant 6

2 accounts

Accounts

signerread signer
jobmut account

Args

None

Types

CreateGpuJobArgs

struct

Fields

providerpubkey
receiptAuthoritypubkey
metadataHash[u8; 32]
gpuProfileHash[u8; 32]
nvidiaApiHash[u8; 32]
meteringUnitGpuMeteringUnit
paymentAssetPaymentAsset
clientNonceu64
pricePerUnitu64
maxUnitsu64
expirySlotu64

GpuStreamReceipt

struct

Fields

cumulativeUnitsu64
resultHash[u8; 32]
receiptNonceu64

PaymentAsset

enum

Fields

Solvariant
Usdcvariant
Icpxvariant

GpuMeteringUnit

enum

Fields

GpuMillisecondvariant
NvidiaBillingUnitvariant
OutputTokenvariant
Requestvariant

Errors

InvalidInstruction

code 6000

InvalidPda

code 6001

InvalidSigner

code 6002

InvalidStatus

code 6003

InvalidTerms

code 6004

InvalidGpuTerms

code 6005

InvalidReceipt

code 6006

JobExpired

code 6007

JobNotExpired

code 6008

MathOverflow

code 6009

EscrowUnderfunded

code 6010

InvalidSystemProgram

code 6011

InvalidTokenProgram

code 6012

InvalidTokenAccount

code 6013

InvalidTokenMint

code 6014

InvalidTokenOwner

code 6015

InvalidEscrowVault

code 6016

InvalidPaymentAsset

code 6017

InvalidProtocolFeeAccount

code 6018

Payment assets

The IDL supports Sol, Usdc, Icpx for job funding and settlement.

GPU job lifecycle

A requester creates a job, funds escrow, a provider accepts the job, usage receipts settle streaming work and completion closes the escrow.

Receipt authority

Streaming receipts are signed by the configured authority: AgYcC58HhWt9vV8kRro7T77FQgGqpcaBMtNEtNYuKeA1.

Devnet first

The website uses devnet defaults now. Mainnet is enabled by changing RPC, mints and registry payment settings.