Skip to content

API Reference ​

Complete API documentation for Cave Wallet SDK.

Installation ​

bash
npm install @cave/sdk

CaveWallet ​

Main class for interacting with Cave Wallet.

Static Methods ​

isInstalled() ​

Check if Cave Wallet extension is installed.

typescript
static async isInstalled(): Promise<boolean>

Returns: true if installed, false otherwise.

Example:

javascript
const installed = await CaveWallet.isInstalled();

connect() ​

Connect to the wallet and request account access.

typescript
static async connect(): Promise<CaveWallet>

Returns: CaveWallet instance.

Throws: Error if user rejects or wallet unavailable.

Example:

javascript
const wallet = await CaveWallet.connect();

Instance Methods ​

getAccount() ​

Get the currently connected account.

typescript
async getAccount(): Promise<Account>

Returns:

typescript
interface Account {
  address: string;
  publicKey: string;
  name?: string;
}

getBalance() ​

Get account balance.

typescript
async getBalance(denom?: string): Promise<Balance>

Parameters:

  • denom (optional): Token denomination. Defaults to native token.

Returns:

typescript
interface Balance {
  amount: string;
  denom: string;
}

signAndBroadcast(tx) ​

Sign and broadcast a transaction.

typescript
async signAndBroadcast(tx: Transaction): Promise<TxResult>

Parameters:

typescript
interface Transaction {
  to?: string;
  amount?: string;
  memo?: string;
  type?: 'transfer' | 'call';
  contract?: string;
  function?: string;
  args?: any[];
  gasLimit?: number;
  messages?: Message[];
}

Returns:

typescript
interface TxResult {
  hash: string;
  height?: number;
  gasUsed?: number;
}

signTransaction(tx) ​

Sign a transaction without broadcasting.

typescript
async signTransaction(tx: Transaction): Promise<SignedTx>

broadcast(signedTx) ​

Broadcast a signed transaction.

typescript
async broadcast(signedTx: SignedTx): Promise<TxResult>

signMessage(message) ​

Sign an arbitrary message.

typescript
async signMessage(message: string): Promise<string>

Returns: Signature as hex string.


verifySignature(message, signature, address) ​

Verify a message signature.

typescript
async verifySignature(
  message: string,
  signature: string,
  address: string
): Promise<boolean>

estimateGas(tx) ​

Estimate gas for a transaction.

typescript
async estimateGas(tx: Transaction): Promise<number>

getTransactionStatus(hash) ​

Get status of a transaction.

typescript
async getTransactionStatus(hash: string): Promise<TxStatus>

Returns:

typescript
interface TxStatus {
  hash: string;
  confirmed: boolean;
  failed: boolean;
  error?: string;
  height?: number;
}

disconnect() ​

Disconnect the wallet.

typescript
disconnect(): void

Events ​

accountChanged ​

Fired when user switches account.

javascript
wallet.on('accountChanged', (account: Account) => {
  console.log('New account:', account);
});

networkChanged ​

Fired when network changes.

javascript
wallet.on('networkChanged', (network: Network) => {
  console.log('New network:', network.chainId);
});

disconnect ​

Fired when wallet disconnects.

javascript
wallet.on('disconnect', () => {
  console.log('Disconnected');
});

Error Codes ​

CodeDescription
4001User rejected request
4100Unauthorized
4200Unsupported method
4900Disconnected
-32000Invalid request
-32002Request pending
-32603Internal error

TypeScript Support ​

Full TypeScript definitions included:

typescript
import { 
  CaveWallet, 
  Account, 
  Transaction, 
  TxResult 
} from '@cave/sdk';

Browser Support ​

BrowserSupported
Chrome 88+✅
Brave✅
Edge✅
Firefox❌
Safari❌

Support ​

The Gno.land Wallet