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.
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
| Piece | Role |
|---|---|
| Identity | A stable userId plus an app-specific salt. On every chain the salt is also HKDF input for the account key. |
| Device-native authority | Every account key is derived from a MasterDEK: a stark key on Starknet, native Ed25519 on Solana and Stellar. |
| Chain adapter | Implements address derivation, signing, execution, recovery, and sponsorship for one network family. |
| Unified SDK | Cavos.connect({ chain, network }) returns a discriminated wallet union so shared onboarding stays stable and chain-native methods remain typed. |
| Sponsorship | A 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
Quickstart
Install, choose an adapter, and execute a sponsored transaction.
Chains
Current availability and the adapter contract for future chains.
Starknet
Native stark key, OpenZeppelin account, and paymaster execution.
Solana
Native Ed25519 system account and sponsoring fee payer.
Stellar
Classic G… account, MasterDEK unlock, and Soroban calls.
Reserve
Pay Stellar reserves and fees in a token, from any G… wallet.
React
Provider, hooks, modal, and chain switching.
React Native
Secure Enclave, Android Keystore, and native passkeys.
Dashboard
Console: roles, API keys, webhooks, sponsorship, allowlists.
For agents
Machine-readable docs and implementation rules for coding agents.