Skip to content

Installation

Package Manager

bash
npm install @vortum/sdk
bash
pnpm add @vortum/sdk
bash
yarn add @vortum/sdk

Requirements

  • Node.js 18+ or modern browser
  • TypeScript 5.0+ (recommended)

Basic Setup

typescript
import { VortumClient } from '@vortum/sdk'

// Create a client instance (browser only)
const client = await VortumClient.create()

// Returns null on server-side
if (!client) {
  console.log('SDK only works in browser')
}

Configuration Options

typescript
const client = await VortumClient.create({
  // Custom canister ID (for local development)
  canisterId: 'bkyz2-fmaaa-aaaaa-qaaaq-cai',
  // Custom host
  host: 'http://localhost:4943',
})
OptionTypeDefaultDescription
canisterIdstringProduction IDBackend canister ID
hoststringhttps://icp0.ioIC host URL

Browser Usage

The SDK is designed for browser environments:

html
<script type="module">
  import { VortumClient } from '@vortum/sdk'

  const client = await VortumClient.create()

  // Initialize auth state (restores existing session)
  await client.auth.initAuth()

  if (client.isAuthenticated()) {
    console.log('Logged in as:', client.getPrincipal())
  } else {
    await client.auth.loginWithII()
  }
</script>

State Management

Subscribe to authentication state changes:

typescript
const client = await VortumClient.create()

// Subscribe to state changes
const unsubscribe = client.subscribe(() => {
  console.log('Authenticated:', client.isAuthenticated())
  console.log('Principal:', client.getPrincipal())
})

// Later, stop listening
unsubscribe()