API Reference
Complete API documentation for Cave Wallet SDK.
Installation
npm install @cave/sdkCaveWallet
Main class for interacting with Cave Wallet.
Static Methods
isInstalled()
Check if Cave Wallet extension is installed.
static async isInstalled(): Promise<boolean>Returns: true if installed, false otherwise.
Example:
const installed = await CaveWallet.isInstalled();connect()
Connect to the wallet and request account access.
static async connect(): Promise<CaveWallet>Returns: CaveWallet instance.
Throws: Error if user rejects or wallet unavailable.
Example:
const wallet = await CaveWallet.connect();Instance Methods
getAccount()
Get the currently connected account.
async getAccount(): Promise<Account>Returns:
interface Account {
address: string;
publicKey: string;
name?: string;
}getBalance()
Get account balance.
async getBalance(denom?: string): Promise<Balance>Parameters:
denom(optional): Token denomination. Defaults to native token.
Returns:
interface Balance {
amount: string;
denom: string;
}signAndBroadcast(tx)
Sign and broadcast a transaction.
async signAndBroadcast(tx: Transaction): Promise<TxResult>Parameters:
interface Transaction {
to?: string;
amount?: string;
memo?: string;
type?: 'transfer' | 'call';
contract?: string;
function?: string;
args?: any[];
gasLimit?: number;
messages?: Message[];
}Returns:
interface TxResult {
hash: string;
height?: number;
gasUsed?: number;
}signTransaction(tx)
Sign a transaction without broadcasting.
async signTransaction(tx: Transaction): Promise<SignedTx>broadcast(signedTx)
Broadcast a signed transaction.
async broadcast(signedTx: SignedTx): Promise<TxResult>signMessage(message)
Sign an arbitrary message.
async signMessage(message: string): Promise<string>Returns: Signature as hex string.
verifySignature(message, signature, address)
Verify a message signature.
async verifySignature(
message: string,
signature: string,
address: string
): Promise<boolean>estimateGas(tx)
Estimate gas for a transaction.
async estimateGas(tx: Transaction): Promise<number>getTransactionStatus(hash)
Get status of a transaction.
async getTransactionStatus(hash: string): Promise<TxStatus>Returns:
interface TxStatus {
hash: string;
confirmed: boolean;
failed: boolean;
error?: string;
height?: number;
}disconnect()
Disconnect the wallet.
disconnect(): voidEvents
accountChanged
Fired when user switches account.
wallet.on('accountChanged', (account: Account) => {
console.log('New account:', account);
});networkChanged
Fired when network changes.
wallet.on('networkChanged', (network: Network) => {
console.log('New network:', network.chainId);
});disconnect
Fired when wallet disconnects.
wallet.on('disconnect', () => {
console.log('Disconnected');
});Error Codes
| Code | Description |
|---|---|
| 4001 | User rejected request |
| 4100 | Unauthorized |
| 4200 | Unsupported method |
| 4900 | Disconnected |
| -32000 | Invalid request |
| -32002 | Request pending |
| -32603 | Internal error |
TypeScript Support
Full TypeScript definitions included:
import {
CaveWallet,
Account,
Transaction,
TxResult
} from '@cave/sdk';Browser Support
| Browser | Supported |
|---|---|
| Chrome 88+ | ✅ |
| Brave | ✅ |
| Edge | ✅ |
| Firefox | ❌ |
| Safari | ❌ |
