← Protocols
Nosana
AI Agent / Web3·Solana

Nosana

01Description

Solana-native decentralized GPU compute network. Tenants post Docker-based job definitions (`nosana-job`) priced in NOS; nodes pick up matching jobs, run them, and post results back. Geared toward AI inference, batch ML, and CI workloads with deterministic pricing and a Solana smart contract for job escrow.

02Best for
  • 01Solana-native GPU jobs
  • 02Dockerized AI inference
  • 03batch ML pipelines
  • 04NOS-paid compute marketplace
  • 05low-overhead one-shot GPU tasks
03Install
  • npm install -g @nosana/cli
  • pnpm add @nosana/sdk
04Environment variables
VariableScopeDescription
NOSANA_WALLETServerPath to a Solana keypair JSON used by the Nosana CLI/SDK to fund jobs and sign transactions.
NOSANA_NETWORKServerCluster: `mainnet` or `devnet`.
NOSANA_MARKETServerMarket address selecting which node tier (e.g. nvidia-3090, nvidia-3060) runs the job.
05Prompt snippet
Use Nosana to run a Dockerized GPU job by writing a `job-definition.json` (`{ version, type: 'container', meta, ops: [{ id, type: 'container/run', args: { image, cmd, gpu: true } }] }`) and posting it with `nosana job post --file job-definition.json --market $NOSANA_MARKET --wallet $NOSANA_WALLET`. From Node use `import { Client } from '@nosana/sdk'; const nosana = new Client('mainnet', wallet); const tx = await nosana.jobs.list(jobDef, market);` and poll `nosana.jobs.get(tx)` for `state` (`QUEUED` -> `RUNNING` -> `COMPLETED`) and the IPFS result CID. Keep job runtimes bounded — Nosana enforces a max timeout per market and overruns get slashed. For long-running endpoints, prefer io.net or Akash.
06Gotchas
  • Markets are tier-segmented by GPU SKU — picking the wrong market id silently delays or rejects the job; query `nosana market list` first.
  • NOS price volatility means $-cost per job can vary substantially intra-day; quote consumers in USD and rebalance NOS on a schedule.
  • Region availability is concentrated in EU/US; latency-sensitive jobs in APAC will see longer queue + transfer times.
  • Each job has a hard maximum runtime per market — exceeding it slashes the operator and the job state goes to `STOPPED`; design idempotent retries.
  • Result payloads are pinned to IPFS by the node — if the node prunes after settlement, fetch artifacts immediately via the result CID or your own pinning service.
  • Network congestion on popular markets (3090s) pushes queue times into minutes; switch to a less crowded SKU for throughput-sensitive work.
  • Image-generation containers (SD/Flux) are well supported; text LLM endpoints work but cold-start time per job makes per-token serving expensive vs. always-on inference networks.
  • Slashing applies to nodes for failed jobs but tenants can lose escrow if the job is malformed — validate the manifest with `nosana job validate` before posting.
07Alternatives