Skip to main content

getBalance()

getBalance() is a function from privacycash-evm used to retrieve your private ETH balance from the Privacy Cash protocol on Base.

Parameters

ParameterTypeDescription
signaturestringWallet signature of the Privacy Cash sign-in message.
addressstringYour EVM wallet address.

Return Value

PropertyTypeDescription
balancestringTotal private ETH balance as a decimal string (e.g. "0.05").

Example Usage

'use client'
import { getBalance } from 'privacycash-evm'
import { useAccount } from 'wagmi'
import { useEffect, useState } from 'react'

export function PrivateBalance() {
    const { address } = useAccount()
    const [balance, setBalance] = useState('0')

    useEffect(() => {
        if (!address) return
        const signature = localStorage.getItem(`evm_sign_${address}`)
        if (!signature) return

        getBalance({ signature, address }).then(res => {
            setBalance(res.balance)
        })
    }, [address])

    return <div>Private Balance: {balance} ETH</div>
}

Auto-Refresh Pattern

Re-fetch the balance after a deposit or withdrawal completes by tracking a change counter:
const [balanceChanged, setBalanceChanged] = useState(0)

useEffect(() => {
    if (!address) return
    const signature = localStorage.getItem(`evm_sign_${address}`)
    if (!signature) return
    getBalance({ signature, address }).then(res => setBalance(res.balance))
}, [balanceChanged, address])

// After a successful deposit or withdrawal:
setBalanceChanged(prev => prev + 1)

How It Works

getBalance() scans all historic NewCommitment events from the Privacy Cash contract and attempts to decrypt each one locally using the key derived from your signature. UTXOs that decrypt successfully and have not been spent are summed to produce your total balance. No private data leaves the client.