Skip to content
For the complete documentation index optimized for AI agents, see llms.txt or llms-full.txt. A markdown version of this page is available by appending .md to the URL or sending Accept: text/markdown.

Quickstart

For AI agents: the documentation index is at llms.txt (full corpus: llms-full.txt). A markdown source for this page is /using-stacks/quickstart.md.

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


Choose how you want to run the CLI:

Install the native binary via Cargo:

Terminal window
cargo install a4-cli

Then use the a4 command:

Terminal window
a4 create my-app

This is the same CLI — Cargo installs it as a4, and so does npm.


Terminal window
a4 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
Terminal window
a4 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 Arete 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

Arete

ORE stack

3

Your App

Live feed

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


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

All templates connect to the public ORE stack at wss://ore.stack.arete.run.

You can also specify the template directly:

Terminal window
npx @usearete/a4 create my-app --template react-ore

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

App.tsx
import { AreteProvider } from "arete-react";
import { OreDashboard } from "./components/OreDashboard";
export default function App() {
return (
<AreteProvider
websocketUrl="wss://ore.stack.arete.run"
autoConnect={true}
>
<OreDashboard />
</AreteProvider>
);
}
components/OreDashboard.tsx
import { useArete } from "arete-react";
import { ORE_STREAM_STACK } from "arete-stacks/ore";
export function OreDashboard() {
const { views, isConnected } = useArete(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 Arete agent skills so your AI can write correct code without you looking up docs:

Terminal window
npx skills add AreteA4/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 Arete in action, where you go next depends on what you’re building:

Using an existing on-chain program that has a Arete 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 Arete code with the right context