> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.clossir.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.clossir.com/_mcp/server.

# Quickstart

GETTING STARTED · QUICKSTART

This guide walks you through authenticating, reading data, and issuing your first attestation
command — all in under five minutes.

## Prerequisites

* A Clossir organization (sign up at [app.dev.clossir.com](https://app.dev.clossir.com/))
* An API key with `attestations:read` and `attestations:write` scopes
  (see [Authentication](/getting-started/authentication) for how to create one)
* Node.js 18+ or Bun

## 1. Install the SDK

```bash title="Install"
npm install @signum-tech/sdk
```

## 2. Authenticate

```ts title="client.ts"
import { SignumClient } from "@signum-tech/sdk";

const signum = new SignumClient({
  apiKey: process.env.SIGNUM_API_KEY,
});
```

The API key is org-scoped — all operations are automatically isolated to your organization.

## 3. Make your first read

```ts title="read.ts"
const parties = await signum.identity.parties.list();

console.log(`Found ${parties.data.length} parties in your org`);
```

Reads return `200 OK` with the current state.

## 4. Issue your first attestation

```ts title="attest.ts"
const result = await signum.attestations.create({
  partyId: "pty_abc123",
  type: "accredited_investor",
  chainId: 1,
});

console.log(result.status); // 202 — accepted for processing
console.log(result.id);     // att_xyz789 — poll GET /attestations/:id for status
```

Commands return `202 Accepted` — the attestation is queued for on-chain processing. Poll the
`GET /attestations/:id` endpoint (or use webhooks) to know when it settles.

## What just happened

1. **Authenticated** — your API key identified your org and authorized the scopes.
2. **Read** — fetched existing parties from Supabase (sync, `GET → 200`).
3. **Commanded** — issued an attestation request (`POST → 202`) that is processed
   asynchronously and settled on-chain; poll `GET → 200` or subscribe to webhooks.

## Next steps

* [Concepts](/getting-started/concepts) — understand the full data model
* [Authentication](/getting-started/authentication) — manage keys and scopes
* [Identity](/products/identity/overview) — deep-dive into parties, wallets, and attestations