Quickstart
Get connected to Starkscan quickly with a public host, a bounded API key, and no repo setup.
Quickstart
Use this guide when you need the shortest safe path from “I have a host and a key” to “I made a successful Starkscan request.”
Default recommendation: start with direct HTTP first. A requests.http file or curl keeps the auth header, route shape, and wire output visible before you add SDK, CLI, or MCP layers.
Use this guide for
- external API onboarding
- first-request verification
- choosing the right Starkscan surface before deeper integration work
- proving the current deployment is reachable before you touch SDK, CLI, or MCP
Start in the app first
Open the live product on the same host before you wire clients:
Use the app first when you want to confirm the deployment is healthy and see the same explorer surface that the API, SDK, CLI, and MCP all sit on top of.
What you need
STARKSCAN_API_KEY- optionally
STARKSCAN_CHAINif you are not using the defaultSN_MAIN - optionally
STARKSCAN_BASE_URLonly when targeting preview or a self-hosted Starkscan host
Hosted production defaults to https://api.starkscan.co in the CLI, SDK, and MCP launcher.
Create or rotate a key from the hosted API keys page before you paste the examples into an agent, CI job, SDK app, or shell script.
New to the vocabulary? See Concepts.
1. Export the environment
export STARKSCAN_API_KEY="YOUR_STARKSCAN_API_KEY"
export STARKSCAN_CHAIN="SN_MAIN"
# Optional: only set this for preview or self-hosted hosts.
# export STARKSCAN_BASE_URL="https://preview.example.com/api"All public docs below assume you call the normal /v1/* routes relative to that base.
If you are onboarding a coding agent that will call Starkscan over HTTP directly, start with Agent HTTP quickstart instead of reconstructing a reduced contract from chat snippets.
2. Make the first successful request
If your editor supports .http request files, start with the exact request shape first:
@starkscan = https://api.starkscan.co
@chain = SN_MAIN
@apiKey = YOUR_STARKSCAN_API_KEY
GET {{starkscan}}/v1/{{chain}}/status
X-Starkscan-Api-Key: {{apiKey}}Shell form of the same request:
curl \
-H "X-Starkscan-Api-Key: $STARKSCAN_API_KEY" \
"${STARKSCAN_BASE_URL:-https://api.starkscan.co}/v1/$STARKSCAN_CHAIN/status"If that returns chain status, your Starkscan access is wired correctly.
3. Validate the first high-value reads
These are the fastest replacement checks when you are moving from direct RPC reads into Starkscan:
curl \
-H "X-Starkscan-Api-Key: $STARKSCAN_API_KEY" \
"${STARKSCAN_BASE_URL:-https://api.starkscan.co}/v1/$STARKSCAN_CHAIN/token/<token>/total-supply?block_tag=latest"
curl \
-H "X-Starkscan-Api-Key: $STARKSCAN_API_KEY" \
"${STARKSCAN_BASE_URL:-https://api.starkscan.co}/v1/$STARKSCAN_CHAIN/token/<token>/balance-of/<owner>?block_tag=latest"Use balance-of only when you already know the exact token contract you want to check.
If the workflow is wallet screening or "skip wallets that already hold USDC," use:
curl \
-H "X-Starkscan-Api-Key: $STARKSCAN_API_KEY" \
"${STARKSCAN_BASE_URL:-https://api.starkscan.co}/v1/$STARKSCAN_CHAIN/address/<owner>/token-holdings"That avoids two common mistakes:
- assuming one symbol such as USDC maps to only one Starknet contract
- looping exact-token
balance-ofacross large wallet sets whentoken-holdingsis the better current Starkscan path
These same workflows also exist in the CLI, the TypeScript SDK, and MCP.
If you use token-holdings to decide whether to skip or include a wallet, check the holdings completeness flags first. Treat the result as complete only when exact=true, truncated=false, and completeness.reasonCode="complete".
4. Run the 10-wallet monitoring starter
If your workflow is fixed-wallet monitoring, do not hand-assemble it from scattered snippets. Use the dedicated Monitor 10 wallets guide instead.
That starter gives you one canonical workflow across:
- HTTP for zero-install monitoring and raw wire inspection
- the TypeScript SDK for app code
- the CLI for shell-based polling and local exports
5. Install the release clients
CLI
npm install -g @starkscan/cli
starkscan init
starkscan statusFor a one-off run without a global install:
npx -y @starkscan/cli init --agent --output-format jsonThe npm package includes the native Starkscan CLI artifacts, verifies them before caching the binary locally, and does not require repository access.
Pinned native artifacts remain a maintainer fallback; public users should start with npm.
SDK
npm install @starkscan/[email protected]
# or
pnpm add @starkscan/[email protected]
bun add @starkscan/[email protected]Default installs use latest. Pin exact 0.1.2 for
unattended agents and services.
6. Choose the next surface deliberately
Stay on HTTP when you want zero-install integration
Keep going with the API guide when you need exact HTTP behavior, auth headers, retries, and request/response debugging.
Move to the SDK when you are writing app code
Use the TypeScript SDK when you want typed responses and route construction handled for you.
Move to the CLI when you need shell workflows or exports
Use the Agent CLI when you want repeatable terminal commands, local-first transfer exports, or a shell-friendly operator surface.
Move to MCP when an agent needs tool-calling access
Use MCP quickstart when the consumer is Codex, Claude Code, Cursor, VS Code, or another MCP client.
7. Keep going with the right docs
- Continue with the API guide when you need exact HTTP behavior.
- Continue with Agent HTTP quickstart when a coding agent needs a bounded HTTP route set.
- Continue with the SDK when you are writing app code.
- Continue with the CLI when you want shell workflows or local exports.
- Continue with MCP when an agent needs tool calls instead of direct HTTP.
When to stay in the explorer instead
Stay in the browser first when the job is visual verification:
- use Transactions to inspect activity and detail pages
- use Contracts to inspect deployment metadata and holdings
- use Watchlist to revisit saved high-signal entities
- use Dashboard when you need quick chain-health context