Skip to content
Docs

Norynta public docs

Norynta Developer Quickstart

Run the fastest developer smoke tests for Norynta discovery, market data, SDKs, and agent workflows.

Developer Quickstart

Purpose

This document gives external developers the fastest path from zero context to a working Norynta integration.

Audience

  • API integrators
  • bot developers
  • AI agent operators
  • trading teams validating Norynta quickly

Outcome

By the end of this quickstart, you should be able to:

  • discover Norynta capabilities
  • fetch market data
  • list events and inspect orderbooks
  • prepare deposits and withdrawals
  • place wallet-signed bets/orders
  • reconcile balances, deposits, withdrawals, orders, and trades
  • validate the schema contract
  • run the SDK/CLI path locally

This quickstart is read-first by default. Placing or canceling orders requires API-key access where enabled plus wallet-signed request payloads.

Prerequisites

  • Node.js 24.x
  • npm
  • jq for readable curl output
  • a running Norynta app, or a hosted base URL supplied by the Norynta team

For local development:

npm install
cp .env.example .env.local
npm run dev

Set a base URL once for copy/paste commands:

export NORYNTA_BASE_URL="${NORYNTA_BASE_URL:-http://localhost:3000}"

If API keys are enabled for the target deployment:

export NORYNTA_AGENT_API_KEY="pmak_..."

Zero-to-signal in one command

After starting the app, run:

npm run agent:quickstart -- --base "$NORYNTA_BASE_URL"

Optional (also validates MCP server registration):

npm run agent:quickstart -- --base "$NORYNTA_BASE_URL" --with-mcp

This is the fastest health check for external integrations before deeper SDK or trading work.

Self-serve developer portal

Signed-in developers can create and manage personal API keys at:

  • /developers

The portal includes:

  • API key creation, rename, environment labels, and revoke controls
  • one-time secret display
  • SDK and CLI quickstart commands
  • buy/sell examples built around wallet-signed orders
  • OSS integration recipes for AI agents, MCP, generated OpenAPI clients, and automation tools
  • usage summary and recent delivery audit activity

Self-serve keys identify and quota the agent. Trading writes still require the existing wallet-signed payloads, idempotency, surveillance, and compliance checks.

1. Start Norynta locally

npm run dev

If you only want a lightweight UI/runtime path:

npm run dev:fast

2. Discover the platform

curl -sS "$NORYNTA_BASE_URL/.well-known/agent.json" | jq
curl -sS "$NORYNTA_BASE_URL/api/agent/card" | jq
curl -sS "$NORYNTA_BASE_URL/api/agent/access" | jq
curl -sS "$NORYNTA_BASE_URL/api/bot/config" | jq

What you are learning here:

  • agent metadata and discovery URLs
  • protocol capabilities
  • execution hints
  • auth expectations
  • retry and idempotency guidance

3. Fetch market data

curl -sS "$NORYNTA_BASE_URL/api/events/health?limit=5" | jq
curl -sS "$NORYNTA_BASE_URL/api/v1/events?limit=5" | jq
curl -sS "$NORYNTA_BASE_URL/api/events/btc-above-100k/snapshot" | jq
curl -sS -X POST "$NORYNTA_BASE_URL/api/events/snapshots" \
  -H 'content-type: application/json' \
  -d '{"slugs":["btc-above-100k","eth-above-5k"]}' | jq

4. Use the stable v1 API surface

Raw HTTP integrations can use these stable aliases:

  • GET /api/v1/events
  • GET /api/v1/markets/:id/orderbook?outcomeIndex=0
  • POST /api/v1/orders with wallet signature and Idempotency-Key
  • GET /api/v1/deposit-options
  • GET /api/v1/accounts/:publicKey/deposit-address
  • GET /api/v1/accounts/:publicKey/withdraw-address
  • GET /api/v1/accounts/:publicKey/deposits
  • GET /api/v1/accounts/:publicKey/withdrawals
  • POST /api/v1/accounts/:publicKey/withdrawals

Account and money-movement endpoints require the same signed secure-action context used by the web app: x-signature plus nonce, domain, cluster, and expiresAt query parameters.

5. Validate machine-readable contracts

npm run openapi:check
npm run check:agent-docs

Reference contracts:

  • public/openapi.json
  • public/api-schema.json

6. Try the CLI

npm run bot:cli -- doctor --base "$NORYNTA_BASE_URL"
npm run bot:cli -- discover --base "$NORYNTA_BASE_URL"
npm run bot:cli -- events --base "$NORYNTA_BASE_URL" --limit 5
npm run bot:cli -- snapshot btc-above-100k --base "$NORYNTA_BASE_URL"
npm run bot:cli -- deposit-options --base "$NORYNTA_BASE_URL"
npm run bot:cli -- get '/api/events?limit=5' --base "$NORYNTA_BASE_URL"

Signed CLI examples:

export NORYNTA_KEYPAIR="$HOME/.config/solana/id.json"
export NORYNTA_PROGRAM_ID="PROGRAM_ID"

npm run bot:cli -- deposit-address --chain solana --asset usdc
npm run bot:cli -- balance
npm run bot:cli -- deposits
npm run bot:cli -- withdraw-address --chain base --asset usdc --recipient 0x1111111111111111111111111111111111111111 --token-address 0x2222222222222222222222222222222222222222
npm run bot:cli -- withdrawals
npm run bot:cli -- place-order EVENT_PUBKEY --outcome-index 0 --side buy --price-cents 50 --size-shares 1 --client-order-id bot-order-001
npm run bot:cli -- place-order EVENT_PUBKEY --outcome-index 0 --side buy --price-cents 50 --size-shares 1 --client-order-id bot-order-001 --submit

After installing @norynta/bot-sdk in another project, use the same commands through the package binary: norynta discover, norynta snapshot <slug>, and norynta get <api-path>.

7. Try the examples

BASE_URL="$NORYNTA_BASE_URL" npx tsx examples/agent-bootstrap.ts
BASE_URL="$NORYNTA_BASE_URL" npx tsx examples/agent-external-sdk.ts
BASE_URL="$NORYNTA_BASE_URL" npx tsx examples/market-watcher.ts

For the default local target, the shorter form also works:

npx tsx examples/agent-bootstrap.ts
npx tsx examples/agent-external-sdk.ts
npx tsx examples/market-watcher.ts

8. Decide your next path

Read-only integration

Continue with:

  • docs/public/API_OVERVIEW.md
  • docs/public/STREAMING_AND_RECONCILIATION.md
  • docs/public/INTEGRATION_STABILITY_POLICY.md

Trading integration

Continue with:

  • docs/public/AUTH_AND_RATE_LIMITS.md
  • docs/public/TRADING_INTEGRATION_WORKFLOW.md
  • docs/AGENT_INTEGRATION.md

Before enabling live writes, confirm:

  • target environment and cluster
  • wallet-signing implementation
  • deterministic clientOrderId or idempotency-key generation
  • retry behavior for 401, 429, 5xx, and unknown write status
  • stream reconciliation after disconnects

OSS and agent integration

Continue with:

  • /developers for portal recipes
  • docs/public/SDK_AND_EXAMPLES.md
  • docs/public/MCP_GUIDE.md
  • generated clients from public/openapi.json

Full platform guide

Continue with:

  • docs/DEVELOPERS.md

Related docs

  • docs/public/INTEGRATION_START_HERE.md
  • docs/DEVELOPERS.md
  • docs/public/API_OVERVIEW.md
  • docs/public/SDK_AND_EXAMPLES.md
  • docs/AGENT_INTEGRATION.md