prism.

Prism Network / Developer reference

Build against metered GPU infrastructure.

Prism matches digest-pinned container workloads with bonded NVIDIA capacity, holds the maximum cost in USDG, starts billing only after runtime admission, and resolves the lease through an onchain settlement record.

Execution
L40S cloud beta
Settlement
Robinhood Chain + USDG
Access
Temporary, key-only SSH
Billing unit
Confirmed runtime second
01

System model

Architecture

The public web application is the identity boundary. It verifies Privy access tokens, establishes an HTTP-only same-origin session, rate-limits requests, and signs service-to-service identity assertions. Browsers never receive orchestration signing keys, settlement keys, device keys, or provider credentials.

BrowserPrivy + wallet
HTTPS
Web boundarySession + rate limit
Signed identity
Control planeQuote + lifecycle state
Asynchronous processing
WorkersProvider + chain

Data plane

Managed cloud leases receive a temporary direct SSH endpoint. Operator-owned infrastructure uses revocable gateway grants over outbound mTLS tunnels.

Control plane

PostgreSQL is the system of record for accounts, quotes, provider instances, lease transitions, settlement transactions, and proof publication.

Settlement plane

Robinhood Chain contracts enforce escrow limits, active-lease bounds, dispute timing, provider payment, platform fees, and refunds.

Governance plane

The Governance Safe routes routine configuration changes through a 48-hour timelock. Emergency pause and dispute resolution remain immediate Safe actions.

02

Renter integration

Quickstart

  1. 01

    Prepare the workload

    Publish a Linux/amd64 OCI image to a public registry and address it by its complete immutable sha256 digest.

  2. 02

    Prepare access

    Create a disposable Ed25519 key. Submit only the single-line public key; the private key must never leave the renter machine.

  3. 03

    Authenticate

    Use the console to create a Privy-backed Prism session and connect the wallet that will fund escrow.

  4. 04

    Quote and fund

    Request a five-minute quote, approve the exact maximum USDG amount, and call createLease with the quote-derived reference.

  5. 05

    Confirm and connect

    Confirm the finalized funding transaction, poll the lease until active, retrieve access, verify the host key, and connect over SSH.

03

Identity boundary

Authentication

Interactive access uses Privy. The browser obtains an access token, posts it to/api/auth/session, and receives a secure, HTTP-only, same-site cookie with a one-hour maximum age. Mutation endpoints require both that session and a same-origin request.

Browser clients

  • Email, passkey, Google, Apple, or EVM wallet login.
  • Embedded wallet creation for accounts without an external wallet.
  • Explicit funding-wallet selection when multiple wallets are linked.
  • Session revocation on logout and server-side identity rejection.

Server-to-server clients

Programmatic access is available through managed integrations. Browser cookies and browser identity assertions are not supported as service credentials.

04

Web application API

HTTP API

Browser integrations use https://prismnetwork.tech/api/app. Responses are JSON, never cached, and include X-Request-Id. Mutation bodies must be application/json and no larger than 256 KiB.

GET/api/app/offersPublic

List currently schedulable, bonded offers.

POST/api/app/leases/matchSession

Create a five-minute quote for an image, runtime, VRAM floor, and optional node.

POST/api/app/leases/confirmSession

Bind a finalized funding event and Ed25519 public key to a quote.

GET/api/app/leasesSession

List leases owned by the authenticated account.

GET/api/app/leases/{lease_id}/accessSession

Return direct SSH or gateway access only after readiness and chain finality.

GET/api/proofPublic

Read the sanitized finalized/refunded public proof feed.

POST /api/app/leases/matchUTF-8 · JSON
{
  "request": {
    "image": "docker.io/nvidia/cuda@sha256:<64 hex chars>",
    "duration_seconds": 3600,
    "min_vram_mib": 45000,
    "preferred_node_id": null
  }
}
201 quote responseUTF-8 · JSON
{
  "quote_id": "9d417fc0-6f42-4d8b-a44f-9ab3cf1bc41f",
  "node_id": "0x<32-byte node id>",
  "image": "docker.io/nvidia/cuda@sha256:<digest>",
  "duration_seconds": 3600,
  "min_vram_mib": 45000,
  "rate_per_second": 222,
  "maximum_escrow": 799200,
  "expires_at": "2026-07-20T18:00:00Z"
}

Matching constraints

  • image must be public, whitespace-free, at most 512 characters, and end in a complete @sha256: digest.
  • duration_seconds must be between 1 and 21,600 seconds.
  • min_vram_mib must be a positive integer compatible with an online offer.
  • preferred_node_id is optional; omit it for deterministic best-match selection.
  • The resulting maximum escrow cannot exceed 50 USDG.
05

Wallet transaction

Funding flow

A quote does not reserve capacity or move funds. The renter wallet sends two sequential transactions: an exact USDG approval followed byLeaseEscrowV1.createLease. The client reference is the Keccak-256 hash of the UTF-8 quote UUID.

viem referenceUTF-8 · JSON
const maximum = BigInt(quote.rate_per_second)
  * BigInt(quote.duration_seconds);
const clientReference = keccak256(toBytes(quote.quote_id));

await wallet.writeContract({
  address: USDG,
  abi: erc20Abi,
  functionName: "approve",
  args: [LEASE_ESCROW, maximum],
});

await wallet.writeContract({
  address: LEASE_ESCROW,
  abi: escrowAbi,
  functionName: "createLease",
  args: [quote.node_id, quote.duration_seconds, clientReference],
});

Wait for both receipts and reject any reverted status. Then confirm the funding transaction through the application API. Confirmation independently verifies the finalized LeaseFunded event, node, duration, renter wallet, deposit, and quote-derived client reference.

POST /api/app/leases/confirmUTF-8 · JSON
{
  "quote_id": "9d417fc0-6f42-4d8b-a44f-9ab3cf1bc41f",
  "transaction_hash": "0x<funding transaction hash>",
  "ssh_authorized_key": "ssh-ed25519 AAAA... workstation"
}
06

State model

Lease lifecycle

funded

Escrow event confirmed and associated with a five-minute quote.

provisioning

Capacity assignment and workspace provisioning are in progress.

ready

GPU and access admission checks passed; access start is pending finality.

active

Billable access is available to the authenticated renter.

closing

Credentials are revoked and the runtime is being destroyed.

settlement_pending

Usage evidence has produced an onchain settlement proposal.

disputed

Finalization is blocked pending Safe-controlled resolution.

finalized

Provider payment, platform fee, and renter refund are complete.

refunded

The lease ended without a provider charge.

failed

Provisioning failed before a final onchain transition was recorded.

Transitions are idempotent and persisted before external side effects. Provider instance IDs, chain transaction bytes, nonces, hashes, confirmation blocks, and final-state evidence survive worker restarts. A ten-minute provision timeout is the refund boundary for leases that never reach billable access.

07

Execution environments

Runtime modes

PropertyManaged L40SOperator-owned infrastructure
CapacityManaged NVIDIA L40S capacityBonded operator-owned NVIDIA host
IsolationDisposable provider containerKata sandbox with VFIO GPU assignment
AccessTemporary direct root SSHRevocable SSH/Jupyter grant via mTLS gateway
ReadinessProvider state, GPU, VRAM, cost, SSH endpointSigned telemetry plus independent active gateway probes
EvidenceProvider instance and hourly costDevice-signed telemetry and gateway timing
AvailabilityLimited betaPlanned; not available for production leases

Container requirements

  • Publicly pullable Linux/amd64 OCI image.
  • Immutable registry digest; tags alone are rejected.
  • Compatible with the host NVIDIA driver and requested CUDA major version.
  • No embedded credentials. Runtime access is injected separately.
  • Workspace storage is ephemeral and must be treated as disposable.
08

Robinhood Chain mainnet

Contracts

USDG0x5fc5360D0400a0Fd4f2af552ADD042D716F1d1686 decimals
NodeRegistryV10xBf83714Ff5d524FA5CD9bdF24495540e979426d7Supplier bonds and offers
LeaseEscrowV10x4e599D47bA62c2Bb733D41625BF98d6cBbf2dF0fLease funding and settlement
AdminTimelockV10x22e2868dCe0E28fb266C5C5BC018Da3145307BBD48-hour configuration delay
Governance Safe0xAF1113cE9E65D79daA87005A729Ab9Bc1A9fc60aEmergency and dispute authority
Chain ID
4663
RPC
rpc.mainnet.chain.robinhood.com
Maximum lease
6 hours
Maximum escrow
50 USDG
Provision timeout
10 minutes
Dispute window
24 hours
Platform fee
10%
Network concurrency
25 active leases
09

Usage accounting

Settlement and proof

Billing begins only after Prism confirms runtime and access readiness onchain. Closing revokes access first, destroys the execution environment, and then assembles bounded usage evidence.

  1. 01

    Observe

    Clamp confirmed runtime to the funded duration and preserve provider or physical-node execution evidence.

  2. 02

    Propose

    Submit an EIP-712 settlement carrying usage seconds, receipt hash, nonce, and deadline.

  3. 03

    Dispute

    Hold finalization for 24 hours. A renter can dispute; the governance Safe resolves disputed outcomes.

  4. 04

    Finalize

    Pay 90% of the charge to the provider, route the 10% platform fee, and refund unused escrow.

  5. 05

    Publish

    Verify the final chain event and expose a sanitized, canonical receipt in the public proof feed.

Public receipts omit renter/provider wallet addresses, precise geography, image digests, terminal output, files, and private telemetry. Proof establishes a platform-attested usage record paired with a final onchain event; it does not prove faithful workload execution or confidential computing.

10

Trust and abuse boundaries

Security model

Enforced controls

  • Exact quote-bound funding event verification.
  • Digest-only public image admission.
  • One active lease per node and 25 network-wide.
  • 50 USDG and six-hour contract limits.
  • Device signature, freshness, and replay checks.
  • Encrypted stored access credentials.
  • Replay-safe chain submissions with reorg-aware confirmation.

Excluded protections

  • Host confidentiality or trusted execution.
  • Protection from a malicious provider operator.
  • Durable workspace storage.
  • Uninterrupted infrastructure-provider availability.
  • Independent smart-contract assurance.
  • Faithful execution of arbitrary renter workloads.

Report a vulnerability

Do not publish an exploitable vulnerability in a public issue. Use this repository's GitHub private vulnerability reporting or email security@prismnetwork.tech. Include the affected commit, component, reproduction, impact, and suggested containment. Never include live credentials or renter data.

11

Production behavior

Operations

Idempotency and recovery

Provider launches reconcile by a unique lease label. Chain submissions persist signed bytes before broadcast. Workers retry from persisted state and reject conflicting final-state transitions.

Capacity admission

Prism publishes an L40S offer only when available capacity satisfies model, VRAM, reliability, and pricing requirements.

Failure containment

Provision failures close or refund rather than starting billing. Destruction is retried before final settlement. Emergency pause blocks new leases without blocking existing refunds.

Observability

Use the response request ID to correlate web, control-plane, provider, and chain records. Public proof publication remains decoupled from financial settlement.

Production availability

Prism expands public capacity after end-to-end production validation covers quoting, funding, provisioning, readiness, teardown, settlement, refunds, provider payment, and proof publication. Failed validations preserve diagnostic evidence and pause new lease funding until the affected service is restored.

12

Response handling

Errors and retries

HTTPCodeMeaning
400invalid_request

Malformed path, JSON, duration, image digest, GPU request, or wallet payload.

401identity_required

No valid Privy-backed Prism session is available.

403invalid_origin / risk_hold

The mutation is cross-origin or the account is restricted.

404no_match / quote_not_found

No compatible capacity exists or the quote is absent/expired.

409network_capacity / identity_replay

A concurrency bound or replay guard rejected the operation.

413request_too_large

The application API body exceeds 256 KiB.

415unsupported_media_type

A mutation was not submitted as application/json.

429rate_limited

The same-origin API budget was exceeded; honor Retry-After.

503service_unavailable

A required identity, rate-limit, orchestration, or provider service is unavailable.

  • Retry 429 only after Retry-After.
  • Retry transient 503 responses with exponential backoff and a maximum delay, without changing the request.
  • Before resubmitting a funding transaction, verify the wallet receipt and account lease history.
  • funding_not_final is expected before the required confirmation threshold and can be polled safely.
  • Treat other 4xx responses as non-retryable until the request or account state changes.