Skip to main content

Configuration

CavosConfig

interface CavosConfig {
  appId: string;
  network?: 'sepolia' | 'mainnet';
  paymasterApiKey?: string;
  starknetRpcUrl?: string;
  enableLogging?: boolean;
  passkeyModal?: PasskeyModalConfig;
}

CavosNativeConfig

interface CavosNativeConfig {
  appId: string;
  rpId: string;
  network?: 'sepolia' | 'mainnet';
  paymasterApiKey?: string;
  starknetRpcUrl?: string;
}

PasskeyModalConfig

interface PasskeyModalConfig {
  title?: string;
  description?: string;
  buttonText?: string;
}

User

UserInfo

interface UserInfo {
  id: string;
  email: string;
  name?: string;
  picture?: string;
}

LoginProvider

type LoginProvider = 'google' | 'apple';

Wallet

DecryptedWallet

interface DecryptedWallet {
  address: string;
  publicKey: string;
  privateKey: string;
}

Transactions

Call

From starknet.js:
interface Call {
  contractAddress: string;
  entrypoint: string;
  calldata?: string[];
}

Signing

TypedData

EIP-712 style typed data for signing:
interface TypedData {
  types: {
    StarkNetDomain?: TypeElement[];
    [key: string]: TypeElement[] | undefined;
  };
  primaryType: string;
  domain: Record<string, unknown>;
  message: Record<string, unknown>;
}

interface TypeElement {
  name: string;
  type: string;
}

Signature

interface Signature {
  r: string;
  s: string;
}

Onramp

OnrampProvider

type OnrampProvider = 'RAMP_NETWORK';

Context

CavosContextValue

interface CavosContextValue {
  cavos: CavosSDK;
  isAuthenticated: boolean;
  user: UserInfo | null;
  address: string | null;
  hasActiveSession: boolean;
  requiresWalletCreation: boolean;
  isLoading: boolean;
  login: (provider: LoginProvider, redirectUri?: string) => Promise<void>;
  createWallet: () => Promise<void>;
  execute: (calls: Call | Call[], options?: { gasless?: boolean }) => Promise<string>;
  signMessage: (message: string | TypedData) => Promise<Signature>;
  deleteAccount: () => Promise<void>;
  retryWalletUnlock: () => Promise<void>;
  getOnramp: (provider: OnrampProvider) => string;
  logout: () => Promise<void>;
}

CavosNativeContextValue

interface CavosNativeContextValue {
  cavos: CavosNativeSDK;
  isAuthenticated: boolean;
  user: UserInfo | null;
  address: string | null;
  isLoading: boolean;
  createWallet: () => Promise<void>;
  loadWallet: () => Promise<void>;
  recoverWallet: () => Promise<void>;
  execute: (calls: Call | Call[], options?: { gasless?: boolean }) => Promise<string>;
  logout: () => Promise<void>;
  setAuthData: (authData: { access_token: string; user: UserInfo }) => Promise<void>;
}