Skip to content
SingularityLabs

Overview

Singularity AI Terminal is a workspace for asking questions about Solana tokens, wallets and contracts. Each question becomes a compute job. A job is routed to a node that has the right capability, runs, and returns a structured result: figures, a risk score where relevant, a confidence level, the sources behind it, and a short written summary.

Using the terminal

Write a question and include a public Solana address. The terminal decides the job type from your wording: mention a wallet to get a wallet analysis, a contract or authority for a contract check, otherwise a token analysis. Questions without an address run as general queries.

Results open in the panel beside the conversation. Use Save result to download the full JSON, or open the job for a permanent link.

Jobs and credits

Jobs move through QUEUED → ASSIGNED → PROCESSING → COMPLETED, or end in FAILED. Credits are reserved when a job is created and charged only on completion. Failed jobs are free and can be retried. See pricing for costs.

Data sources and demo data

By default the app runs with a mock blockchain provider. Its numbers are generated from the address so they are stable, and every result carries isDemo: true and a Demo data label. They do not describe any real token or wallet.

With BLOCKCHAIN_PROVIDER=rpc the app reads live data from a Solana RPC endpoint: mint configuration, largest holders, balances and recent signatures. Liquidity and USD prices need an indexer or price feed and are shown as unknown until one is connected.

Compute network

Work is dispatched through a ComputeProvider interface. The MVP uses a simulated provider: nodes are database records with capabilities, reputation and latency, and the work itself runs on the application server after a short delay. A decentralized provider is defined as a skeleton only. Independent node operators are not connected yet.

GPU providers

Anyone with an account can list GPU machines for rent from GPU Provider. A listing describes the machine (GPU model and count, CPU, memory, storage, region) and sets an hourly price in credits and a minimum rental time. Listings can be paused at any time to stop new rentals.

Each rental pays the provider 90% of its price; the platform keeps 10%. Earnings are added to the provider's credit balance and appear in Billing. While a machine is rented, its specs and price are locked and it cannot be removed.

Early access: listing is open, but the node agent that connects and benchmarks hardware is still in development. Until then, machines are shown as unverified.

HTTP API

All endpoints return JSON shaped as { ok: true, data } or { ok: false, error: { code, message } } and require a signed-in session.

POST/api/terminal/queryRun a free-text query. Returns the queued job.
GET/api/terminal/messagesTerminal history for the signed-in user.
POST/api/jobsCreate a job: { type, address?, prompt? }.
GET/api/jobs/:idJob status, node, output and cost.
POST/api/jobs/:id/retryRe-queue a failed job.
POST/api/token/analyzeToken analysis for { address }.
POST/api/wallet/analyzeWallet analysis for { address }.
GET/api/agentsList agents and their price per run.
POST/api/agents/:slug/runRun an agent with { address?, prompt? }.
GET/api/network/statsNetwork health and job statistics.
GET/api/billing/balanceBalance, reserved and available credits.

Solana layer

Solana is the first chain the terminal reads from. Wallet connection uses the Solana wallet adapter with Wallet Standard, so Phantom, Solflare and other compatible wallets appear automatically. Connecting a wallet is separate from signing in. To link a wallet to your account you sign a short plain-text message; no transaction is sent and no fee is paid.

Security

Singularity never asks for a seed phrase or private key and never stores one. Text that looks like a mnemonic or a secret key is rejected before it is saved or sent to any provider. Only public addresses are stored. Passwords are hashed with bcrypt, sessions use signed httpOnly cookies, and every API route validates its input and checks the session on the server.