Quickstart

From zero to your first attestation in under 5 minutes
View as Markdown

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)
  • An API key with attestations:read and attestations:write scopes (see Authentication for how to create one)
  • Node.js 18+ or Bun

1. Install the SDK

Install
$npm install @signum-tech/sdk

2. Authenticate

client.ts
1import { SignumClient } from "@signum-tech/sdk";
2
3const signum = new SignumClient({
4 apiKey: process.env.SIGNUM_API_KEY,
5});

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

3. Make your first read

read.ts
1const parties = await signum.identity.parties.list();
2
3console.log(`Found ${parties.data.length} parties in your org`);

Reads return 200 OK with the current state.

4. Issue your first attestation

attest.ts
1const result = await signum.attestations.create({
2 partyId: "pty_abc123",
3 type: "accredited_investor",
4 chainId: 1,
5});
6
7console.log(result.status); // 202 — accepted for processing
8console.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 — understand the full data model
  • Authentication — manage keys and scopes
  • Identity — deep-dive into parties, wallets, and attestations