> 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.

# Onboard an Organization

GUIDES · ONBOARD AN ORGANIZATION

This guide walks you through setting up a new Clossir organization from scratch — creating
the org, generating API keys, enabling chains, and optionally registering as an issuer.

## Prerequisites

* A Clossir account (sign up at [app.dev.clossir.com](https://app.dev.clossir.com/))
* Node.js 18+ or Bun

## 1. Install the SDK

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

## 2. Initialize the client

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

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

## 3. Create the organization

Create your org with a name, email, and type. The `org_type` field accepts:
`organization`, `institution`, `fund`, `bank`, `broker_dealer`, `sub_organization`, or `spv`.

```ts title="create-org.ts"
const org = await signum.orgs.create({
  name: "Acme Capital",
  email: "ops@acmecapital.com",
  org_type: "fund",
});

console.log(org.id); // Your new organization ID
```

The API returns `200` with the full org object, including the `id` you will use for all
subsequent calls.

## 4. Set network mode

New organizations default to `testnet`. When you are ready for production, switch to `mainnet`:

```ts title="set-network-mode.ts"
await signum.orgs.setNetworkMode(org.id, {
  network_mode: "mainnet",
});
```

Switching to mainnet enables real on-chain transactions. Keep your org on testnet until
you have validated your integration end-to-end.

## 5. Create an API key

Generate an API key with the scopes your integration needs. The key value is returned
**only once** — store it securely.

```ts title="create-api-key.ts"
const key = await signum.orgs.apiKeys.create(org.id, {
  name: "backend-service",
  permissions: [
    "orgs:read",
    "assets:read",
    "assets:write",
    "attestations:read",
    "attestations:write",
    "chains:read",
    "chains:write",
  ],
});

console.log(key.prefix);  // "sk_live_..."
console.log(key.key);     // Full API key — store securely, shown only once
```

See [Authentication](/getting-started/authentication) for the full list of 16 permission scopes
and recommended scope sets.

## 6. Enable chains

Enable the blockchains your org will operate on. Each chain has a `chain_registry_id` that
you can look up from the chain registry. This is distinct from the LayerZero Endpoint ID (EID).

```ts title="enable-chains.ts"
// Look up the chain registry to find the ID for your target chain,
// then enable it for your org
const chains = await signum.chains.list();
const ethereum = chains.find((c) => c.name === "Ethereum");

await signum.orgs.chains.enable(org.id, {
  chain_registry_id: ethereum.id,
});
```

The `chain_registry_id` is the identifier from the Clossir chain registry, not the
LayerZero EID. Use the chain registry list endpoint to look up IDs for your target chains.

## 7. Register as issuer (optional)

If your org will create and deploy tokenized assets, register as an issuer. This is required
before creating assets.

```ts title="register-issuer.ts"
await signum.orgs.issuer.register(org.id, {
  name: "Acme Capital Issuer",
});
```

## 8. Provision server wallets (optional)

Server wallets enable automated signing for on-chain operations like attestation settlement
and asset deployment.

```ts title="provision-wallet.ts"
const wallet = await signum.orgs.serverWallet.create(org.id);

console.log(wallet); // Server wallet details
```

## 9. Invite a team member (optional)

Add colleagues to your org with specific roles. Available roles: `admin`, `operator`,
`compliance_officer`, `investor`, `client` (default).

```ts title="invite-member.ts"
await signum.orgs.members.invite(org.id, {
  email: "alice@acmecapital.com",
  role: "admin",
  display_name: "Alice Chen",
});
```

The invited user receives an email with a link to accept the invitation.

## What you built

You now have a fully configured Clossir organization with API keys, enabled chains, and
optionally an issuer registration and server wallets. Your org is ready to attest users,
define compliance policies, and deploy gated assets.

## Reference

* [API Reference](/api/overview)
* [Authentication](/getting-started/authentication) — scopes, keys, and error handling

## Next steps

* [Attest a User](/guides/attest-user) — verify identity and issue on-chain attestations
* [Concepts](/getting-started/concepts) — understand the full data model