Skip to content

ZcashShieldedService

SIP Protocol API Reference v0.7.0


SIP Protocol API Reference / ZcashShieldedService

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5334

Zcash Shielded Transaction Service

Provides high-level operations for Zcash shielded transactions with SIP Protocol integration.

new ZcashShieldedService(config): ZcashShieldedService

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5340

ZcashShieldedServiceConfig

ZcashShieldedService

get rpcClient(): ZcashRPCClient

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5495

Get underlying RPC client for advanced operations

ZcashRPCClient


get currentAccount(): number

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5499

Get current account number

number

initialize(): Promise<void>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5346

Initialize the service

Creates an account if needed and retrieves the default address.

Promise<void>


getAddress(): string

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5354

Get the default shielded address

string


generateNewAddress(): Promise<string>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5360

Generate a new diversified address for the account

Each address is unlinkable but controlled by the same account.

Promise<string>


validateAddress(address): Promise<ZcashAddressInfo>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5364

Validate an address

string

Promise<ZcashAddressInfo>


isShieldedAddress(address): Promise<boolean>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5368

Check if an address is a shielded address

string

Promise<boolean>


getBalance(minConf?): Promise<ShieldedBalance>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5372

Get shielded balance summary

number

Promise<ShieldedBalance>


sendShielded(params): Promise<ShieldedSendResult>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5379

Send a shielded transaction

ShieldedSendParams

Send parameters

Promise<ShieldedSendResult>

Send result with txid


sendWithPrivacy(to, amount, privacyLevel, memo?): Promise<ShieldedSendResult>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5385

Send shielded transaction with SIP integration

Higher-level method that handles privacy level mapping.

string

number

PrivacyLevel

string

Promise<ShieldedSendResult>


getReceivedNotes(minConf?, onlySpendable?): Promise<ReceivedNote[]>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5392

Get received notes (incoming shielded transactions)

number

Minimum confirmations

boolean

Only return spendable notes

Promise<ReceivedNote[]>


getPendingNotes(): Promise<ReceivedNote[]>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5396

Get pending (unconfirmed) incoming transactions

Promise<ReceivedNote[]>


waitForNote(predicate, timeout?, pollInterval?): Promise<ReceivedNote>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5404

Wait for incoming note with specific criteria

(note) => boolean

Function to match the expected note

number

Timeout in ms

number

Poll interval in ms

Promise<ReceivedNote>


exportViewingKey(address?): Promise<ExportedViewingKey>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5411

Export viewing key for an address

The viewing key allows monitoring incoming transactions without spending capability.

string

Promise<ExportedViewingKey>


importViewingKey(viewingKey, rescan?, startHeight?): Promise<void>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5417

Import viewing key for monitoring

Allows monitoring transactions to an address without spending.

string

"yes" | "no" | "whenkeyisnew"

number

Promise<void>


exportForCompliance(): Promise<{ viewingKey: ExportedViewingKey; privacyLevel: PrivacyLevel; disclaimer: string; }>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5423

Export viewing key for compliance/audit

Specifically for SIP COMPLIANT privacy level.

Promise<{ viewingKey: ExportedViewingKey; privacyLevel: PrivacyLevel; disclaimer: string; }>


getOperationStatus(operationId): Promise<ZcashOperation | null>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5431

Get status of an operation

string

Promise<ZcashOperation | null>


listPendingOperations(): Promise<ZcashOperation[]>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5435

List all pending operations

Promise<ZcashOperation[]>


getBlockHeight(): Promise<number>

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5439

Get current block height

Promise<number>


isTestnet(): boolean

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5443

Check if connected to testnet

boolean


estimateFee(recipients?, inputs?): number

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5476

Estimate transaction fee based on ZIP-317 conventional fee

The ZIP-317 fee is calculated as: fee = marginal_fee * max(grace_actions, logical_actions)

For shielded transactions:

  • Each Sapling spend = 1 logical action
  • Each Sapling output = 1 logical action
  • Each Orchard action = 1 logical action (covers both spend and output)

number

Number of recipients (outputs)

number

Estimated number of input notes (default: 1)

number

Estimated fee in ZEC

// Estimate fee for 1 recipient
const fee = service.estimateFee(1)
// Estimate fee for 3 recipients with 2 input notes
const fee = service.estimateFee(3, 2)

getMinimumFee(): number

Defined in: @sip-protocol/sdk/dist/index-BYZbDjal.d.ts:5482

Get minimum fee for a shielded transaction

number

Minimum fee in ZEC (ZIP-317 with grace actions)