Cavos

Overview

Device-native, self-custodial embedded wallets across every chain, from one SDK.

@cavos/kit gives applications one wallet integration across chains without flattening their differences. Users authenticate with a familiar identity and control a deterministic wallet through device-native key material—no seed phrase, MPC cluster, or browser extension.

Starknet, Solana, and Stellar are available today. Cavos is designed to reach every chain through adapters that preserve the same product contract while using each network's native account, signing, execution, and fee model.

TypeScript
import { Cavos } from "@cavos/kit";

const wallet = await Cavos.connect({
  chain: "solana", // "starknet" | "solana" | "stellar"
  network: "testnet",
  identity: { userId: user.id, email: user.email },
  appSalt: "my-app",
  appId: process.env.NEXT_PUBLIC_CAVOS_APP_ID,
});

if (wallet.chain === "solana" && wallet.status === "ready") {
  await wallet.execute(1_000_000n, recipient);
}

The stable product contract

PieceRole
IdentityA stable userId plus an app-specific salt. On every chain the salt is also HKDF input for the account key.
Device-native authorityEvery account key is derived from a MasterDEK: a stark key on Starknet, native Ed25519 on Solana and Stellar.
Chain adapterImplements address derivation, signing, execution, recovery, and sponsorship for one network family.
Unified SDKCavos.connect({ chain, network }) returns a discriminated wallet union so shared onboarding stays stable and chain-native methods remain typed.
SponsorshipA paymaster, relayer, fee payer, or fee-bump service removes the need for users to acquire gas when that adapter supports it.

What remains chain-native

Execution is intentionally not reduced to a misleading universal transaction format:

  • Starknet: standard OpenZeppelin account, arbitrary multicalls, Starknet paymaster.
  • Solana: native Ed25519 system account, transfer or allowlisted instructions, sponsoring fee payer.
  • Stellar: classic G… account, native Ed25519 control key (MasterDEK or grandfathered extra signers), XLM payments, Soroban invocation, optional fee-bump.

Narrow on wallet.chain before calling chain-native methods. See Chains for the capability matrix.

Security properties

  • Self-custodial: Cavos does not hold a signing key that can move user funds.
  • MPC-free: there are no reconstructable server-side key shards.
  • Device-native: authority is created or unlocked locally on an enrolled device.
  • Deterministic identity: the same stable identity and app salt resolve to the same wallet for that adapter.
  • Recoverable: each adapter exposes non-custodial device approval and recovery appropriate to its account model.

Where to next

On this page