Data plane
Managed cloud leases receive a temporary direct SSH endpoint. Operator-owned infrastructure uses revocable gateway grants over outbound mTLS tunnels.
Prism Network / Developer reference
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.
System model
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.
Managed cloud leases receive a temporary direct SSH endpoint. Operator-owned infrastructure uses revocable gateway grants over outbound mTLS tunnels.
PostgreSQL is the system of record for accounts, quotes, provider instances, lease transitions, settlement transactions, and proof publication.
Robinhood Chain contracts enforce escrow limits, active-lease bounds, dispute timing, provider payment, platform fees, and refunds.
The Governance Safe routes routine configuration changes through a 48-hour timelock. Emergency pause and dispute resolution remain immediate Safe actions.
Renter integration
Publish a Linux/amd64 OCI image to a public registry and address it by its complete immutable sha256 digest.
Create a disposable Ed25519 key. Submit only the single-line public key; the private key must never leave the renter machine.
Use the console to create a Privy-backed Prism session and connect the wallet that will fund escrow.
Request a five-minute quote, approve the exact maximum USDG amount, and call createLease with the quote-derived reference.
Confirm the finalized funding transaction, poll the lease until active, retrieve access, verify the host key, and connect over SSH.
Identity boundary
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.
Programmatic access is available through managed integrations. Browser cookies and browser identity assertions are not supported as service credentials.
Web application 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.
/api/app/offersPublicList currently schedulable, bonded offers.
/api/app/leases/matchSessionCreate a five-minute quote for an image, runtime, VRAM floor, and optional node.
/api/app/leases/confirmSessionBind a finalized funding event and Ed25519 public key to a quote.
/api/app/leasesSessionList leases owned by the authenticated account.
/api/app/leases/{lease_id}/accessSessionReturn direct SSH or gateway access only after readiness and chain finality.
/api/proofPublicRead the sanitized finalized/refunded public proof feed.
{
"request": {
"image": "docker.io/nvidia/cuda@sha256:<64 hex chars>",
"duration_seconds": 3600,
"min_vram_mib": 45000,
"preferred_node_id": null
}
}{
"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"
}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.Wallet transaction
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.
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.
{
"quote_id": "9d417fc0-6f42-4d8b-a44f-9ab3cf1bc41f",
"transaction_hash": "0x<funding transaction hash>",
"ssh_authorized_key": "ssh-ed25519 AAAA... workstation"
}State model
fundedEscrow event confirmed and associated with a five-minute quote.
provisioningCapacity assignment and workspace provisioning are in progress.
readyGPU and access admission checks passed; access start is pending finality.
activeBillable access is available to the authenticated renter.
closingCredentials are revoked and the runtime is being destroyed.
settlement_pendingUsage evidence has produced an onchain settlement proposal.
disputedFinalization is blocked pending Safe-controlled resolution.
finalizedProvider payment, platform fee, and renter refund are complete.
refundedThe lease ended without a provider charge.
failedProvisioning 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.
Execution environments
Robinhood Chain mainnet
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d1686 decimals0xBf83714Ff5d524FA5CD9bdF24495540e979426d7Supplier bonds and offers0x4e599D47bA62c2Bb733D41625BF98d6cBbf2dF0fLease funding and settlement0x22e2868dCe0E28fb266C5C5BC018Da3145307BBD48-hour configuration delay0xAF1113cE9E65D79daA87005A729Ab9Bc1A9fc60aEmergency and dispute authorityrpc.mainnet.chain.robinhood.comUsage accounting
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.
Clamp confirmed runtime to the funded duration and preserve provider or physical-node execution evidence.
Submit an EIP-712 settlement carrying usage seconds, receipt hash, nonce, and deadline.
Hold finalization for 24 hours. A renter can dispute; the governance Safe resolves disputed outcomes.
Pay 90% of the charge to the provider, route the 10% platform fee, and refund unused escrow.
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.
Trust and abuse boundaries
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.
Production behavior
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.
Prism publishes an L40S offer only when available capacity satisfies model, VRAM, reliability, and pricing requirements.
Provision failures close or refund rather than starting billing. Destruction is retried before final settlement. Emergency pause blocks new leases without blocking existing refunds.
Use the response request ID to correlate web, control-plane, provider, and chain records. Public proof publication remains decoupled from financial settlement.
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.
Response handling
invalid_requestMalformed path, JSON, duration, image digest, GPU request, or wallet payload.
identity_requiredNo valid Privy-backed Prism session is available.
invalid_origin / risk_holdThe mutation is cross-origin or the account is restricted.
no_match / quote_not_foundNo compatible capacity exists or the quote is absent/expired.
network_capacity / identity_replayA concurrency bound or replay guard rejected the operation.
request_too_largeThe application API body exceeds 256 KiB.
unsupported_media_typeA mutation was not submitted as application/json.
rate_limitedThe same-origin API budget was exceeded; honor Retry-After.
service_unavailableA required identity, rate-limit, orchestration, or provider service is unavailable.
429 only after Retry-After.503 responses with exponential backoff and a maximum delay, without changing the request.funding_not_final is expected before the required confirmation threshold and can be polled safely.4xx responses as non-retryable until the request or account state changes.