Skip to content

Quickstart

This quickstart gets you streaming live Solana data in a few minutes using the ORE demo — a real, deployed Hyperstack stack for the ORE mining program. It’s the fastest way to see Hyperstack in action.


Choose how you want to run the CLI:

Install the native binary via Cargo:

Terminal window
cargo install hyperstack-cli

Then use the hs command:

Terminal window
hs create my-app

This is the same CLI — Cargo installs it as hs while npm uses hyperstack-cli.


Terminal window
hs create my-app

You’ll be prompted to select a template:

TemplateDescriptionRun Command
react-oreReact + Vite dashboardnpm run dev → open localhost:5173
typescript-oreTypeScript CLI clientnpm start
rust-oreRust + Tokio clientcargo run

Or specify the template directly:

Terminal window
hs create my-app --template rust-ore # or react-ore, typescript-ore

That’s it. You’re streaming live Solana data.


The scaffolded app connects to a deployed Hyperstack Stack — a streaming data pipeline that:

  1. Watches Solana for ORE mining program activity
  2. Transforms raw transactions into structured round data (round ID, motherlode, deployment totals)
  3. Streams updates to your app via WebSocket as they happen on-chain
1

Solana

ORE program

2

Hyperstack

ORE stack

3

Your App

Live feed

No RPC calls. No polling. No custom indexer. Just streaming data.


TemplateCommandWhat You Get
react-orenpx hyperstack-cli create my-appReact + Vite dashboard showing live ORE mining rounds
typescript-orenpx hyperstack-cli create my-appTypeScript CLI that streams ORE data to your terminal
rust-orenpx hyperstack-cli create my-appRust + Tokio client streaming ORE round updates

All templates connect to the public ORE stack at wss://ore.stack.usehyperstack.com.

You can also specify the template directly:

Terminal window
npx hyperstack-cli create my-app --template react-ore

The React template uses hyperstack-react with a pre-built stack definition:

App.tsx
import { HyperstackProvider } from "hyperstack-react";
import { OreDashboard } from "./components/OreDashboard";
export default function App() {
return (
<HyperstackProvider
websocketUrl="wss://ore.stack.usehyperstack.com"
autoConnect={true}
>
<OreDashboard />
</HyperstackProvider>
);
}
components/OreDashboard.tsx
import { useHyperstack } from "hyperstack-react";
import { ORE_STREAM_STACK } from "hyperstack-stacks/ore";
export function OreDashboard() {
const { views, isConnected } = useHyperstack(ORE_STREAM_STACK);
const { data: rounds } = views.OreRound.latest.use({ take: 5 });
return (
<div>
<p>{isConnected ? "Live" : "Connecting..."}</p>
{rounds?.map((round) => (
<div key={round.id?.round_id}>
Round #{round.id?.round_id} — Motherlode: {round.state?.motherlode}
</div>
))}
</div>
);
}

Install Hyperstack agent skills so your AI can write correct code without you looking up docs:

Terminal window
npx skills add usehyperstack/skills

Now try asking your agent: “Show me the ORE mining round data in a table with live updates.”

See Build with AI for the full guide and prompt cookbook.


Now that you’ve seen Hyperstack in action, where you go next depends on what you’re building:

Using an existing on-chain program that has a Hyperstack stack?

Have your own on-chain program and want to stream its data?

Want to understand what’s happening under the hood?

Using an AI coding tool?

  • Build with AI — Let your agent write Hyperstack code with the right context