WalletServiceCLIwavecli activity

List

List returns the unified wallet view selected by ListRequest.view: ACTIVITY (default) is the merged WalletEntry stream; VTXOS is the live VTXO inventory; ONCHAIN is the boarding-plus-sweep on-chain history. The body oneof on ListResponse discriminates the typed result so agents see a tagged union, not a polymorphic blob.

Endpoints

gRPCrpc List(ListRequest) returns (ListResponse)
RESTPOST/v1/wallet/list

Examples

wavecli activity

RequestListRequest

ListRequest selects the wallet view and filters for WalletService.List.

FieldTypeDescription
viewListView

view selects which slice of wallet state to return. The default (LIST_VIEW_UNSPECIFIED) is treated as LIST_VIEW_ACTIVITY.

WIRE-BREAKING CHANGE: this message intentionally renumbers the PR #440 fields (pending_only/kinds/limit/offset). wavewalletrpc has no deployed external consumers yet, so the cleaner shape with `view` at field 1 is preferred over a backwards-compatible append. Any binary built against PR #440's ListRequest must be recompiled.

pending_onlybool

pending_only filters the returned entries to those still in flight. Applies to the ACTIVITY view; ignored for VTXOS and ONCHAIN.

kindsrepeated EntryKind

kinds optionally narrows the response to specific entry categories. Applies to the ACTIVITY view; ignored for VTXOS and ONCHAIN. When empty, all kinds are returned.

limituint32

limit caps the response size. Zero means use the daemon default.

offsetuint32

offset is the pagination offset within the chosen view. It applies to the VTXOS and ONCHAIN views; the ACTIVITY view paginates by the opaque cursor below instead and ignores offset.

cursorstring

cursor is the opaque pagination token for the ACTIVITY view. Empty starts from the newest entry; otherwise it is the next_cursor returned by the previous ActivityList page. It is stable across concurrent inserts, so paging never skips or duplicates rows. Ignored for the VTXOS and ONCHAIN views.

ResponseListResponse

ListResponse carries the typed result of WalletService.List as a oneof discriminated by the requested view.

FieldTypeDescription
activityoneof bodyActivityList

activity is set when the request view is ACTIVITY (the default): the merged, time-sorted WalletEntry stream.

vtxosoneof bodyVTXOInventory

vtxos is set when the request view is VTXOS: the live spendable VTXO inventory.

onchainoneof bodyOnchainHistory

onchain is set when the request view is ONCHAIN: the on-chain transaction history.

ListViewenum

ListView selects which slice of wallet state List returns. The default (LIST_VIEW_UNSPECIFIED) is treated as LIST_VIEW_ACTIVITY for backwards feel: callers that don't care about the new shape keep getting the activity stream.

NameNumberDescription
LIST_VIEW_UNSPECIFIED0

LIST_VIEW_UNSPECIFIED is the proto zero value; List treats it as LIST_VIEW_ACTIVITY.

LIST_VIEW_ACTIVITY1

LIST_VIEW_ACTIVITY returns the merged WalletEntry stream (send / recv / deposit / exit) across the swap subsystem, OOR sessions, the boarding ledger, and the unroll registry.

LIST_VIEW_VTXOS2

LIST_VIEW_VTXOS returns the live VTXO inventory (one row per spendable VTXO).

LIST_VIEW_ONCHAIN3

LIST_VIEW_ONCHAIN returns the on-chain transaction history (boarding deposits, boarding sweeps, leave outputs, round commitment txs that confirmed against this wallet).

EntryKindenum

EntryKind tags each WalletEntry with the user-visible category of the underlying operation. Internal subtypes (same-Ark p2p vs real Lightning, OOR session correlators, round IDs) are deliberately not surfaced.

NameNumberDescription
ENTRY_KIND_UNSPECIFIED0

ENTRY_KIND_UNSPECIFIED is the proto zero value used when the operation category is unknown.

ENTRY_KIND_SEND1

ENTRY_KIND_SEND is an outbound payment over any rail (Lightning, same-Ark, onchain, or credit).

ENTRY_KIND_RECV2

ENTRY_KIND_RECV is an inbound receive.

ENTRY_KIND_DEPOSIT3

ENTRY_KIND_DEPOSIT is a boarding deposit rolled into a VTXO.

ENTRY_KIND_EXIT4

ENTRY_KIND_EXIT is a cooperative leave or unilateral exit to on-chain funds.

ActivityListmessage

ActivityList is the ACTIVITY-view body of ListResponse: the merged, time-sorted WalletEntry stream.

FieldTypeDescription
entriesrepeated WalletEntry

entries are the unified, time-sorted wallet operations.

totaluint32

total is the number of entries in this page. It is a page count, not a full-feed count: the feed is paged by an opaque cursor, so callers use has_more, not total, to decide whether to fetch again.

has_morebool

has_more reports whether more entries exist after this page.

next_cursorstring

next_cursor is the opaque token to pass as ListRequest.cursor to fetch the next page. Empty when has_more is false.

WalletEntrymessage

WalletEntry is the single flat row type returned by the ACTIVITY view of List and by SubscribeWallet. The shape is deliberately minimal: display clients should be able to render kind/status/amount/fee/phase directly without parsing daemon-specific swap or ledger internals. Power-user detail belongs in WalletInspectionService.InspectActivity.

FieldTypeDescription
idstring

id is the stable identifier for this entry. Swap-backed SEND and RECV rows use the Lightning payment_hash. Credit-backed RECV rows use the credit operation id (see CreditReceive.operation_id); the payment_hash lives on recv progress/detail instead. EXIT rows use leave_job_id (or sweep txid); DEPOSIT rows use the boarding outpoint or txid.

kindEntryKind

kind is the user-visible category.

statusEntryStatus

status is the coarse user-facing outcome: PENDING, COMPLETE, or FAILED. It mirrors the backing source's durable state and should not be reinterpreted by display clients.

amount_satint64

amount_sat is signed: positive values are incoming to the wallet, negative values are outgoing.

fee_satint64

fee_sat is the absolute fee paid (or pending) for this operation.

counterpartystring

counterparty is a short, display-friendly identifier of the other side: a truncated invoice for Lightning, an ark peer address for OOR, a bech32 onchain address for exits, or "boarding" for deposits.

created_at_unixint64

created_at_unix is the local creation timestamp in unix seconds.

updated_at_unixint64

updated_at_unix is the last persisted update timestamp in unix seconds. List ACTIVITY and SubscribeWallet sort by this field, descending.

notestring

note is the caller-supplied label captured at submit time, if any.

failure_reasonstring

failure_reason is populated only when status is FAILED. It is a single human-readable string, never a coded enum tree.

requestWalletEntryRequest

request is the original payment request or destination associated with the entry, when the backing subsystem persists it. This is useful for expanded views and inspection; compact clients should not need to parse it to explain status or lifecycle.

progressWalletEntryProgress

progress carries lifecycle-specific metadata already normalized by the wallet service. Clients can render phase_label directly or switch on phase without inferring meaning from swap/ledger internals.

failure_codeoptionalEntryFailureCode

failure_code is a stable, machine-readable classification of why a FAILED entry failed. It is set ONLY on FAILED entries; a non-failed entry omits the field entirely (presence-tracked), so its absence is the canonical "no failure" signal and ENTRY_FAILURE_CODE_UNSPECIFIED is never sent on the wire. failure_reason remains the human-readable supplement.

EntryStatusenum

EntryStatus collapses every backing FSM into the three states user-facing surfaces actually need.

NameNumberDescription
ENTRY_STATUS_UNSPECIFIED0

ENTRY_STATUS_UNSPECIFIED is the proto zero value used when the backing state has not been mapped yet.

ENTRY_STATUS_PENDING1

ENTRY_STATUS_PENDING means the operation is still in flight.

ENTRY_STATUS_COMPLETE2

ENTRY_STATUS_COMPLETE means the operation reached a durable success state.

ENTRY_STATUS_FAILED3

ENTRY_STATUS_FAILED means the operation reached a terminal failure state.

WalletEntryRequestmessage

WalletEntryRequest describes the user-recognizable request that created a WalletEntry. It is a oneof because each operation is backed by exactly one request shape.

FieldTypeDescription
lightning_invoiceoneof requestLightningInvoiceRequest

lightning_invoice is populated for Lightning send and receive entries.

onchain_addressoneof requestOnchainAddressRequest

onchain_address is populated for deposit and exit entries.

ark_addressoneof requestArkAddressRequest

ark_address is populated for direct Ark send or receive entries.

LightningInvoiceRequestmessage

LightningInvoiceRequest captures the Lightning request associated with an activity entry.

FieldTypeDescription
invoicestring

invoice is the BOLT-11 payment request.

payment_hashstring

payment_hash identifies the invoice and remains stable after the invoice itself is no longer convenient to display.

OnchainAddressRequestmessage

OnchainAddressRequest captures the onchain address associated with an activity entry.

FieldTypeDescription
addressstring

address is the bech32 onchain address originally issued or targeted.

ArkAddressRequestmessage

ArkAddressRequest captures the Ark address associated with an activity entry.

FieldTypeDescription
addressstring

address is the Ark address originally issued or targeted.

WalletEntryProgressmessage

WalletEntryProgress carries lifecycle metadata normalized by the wallet service.

FieldTypeDescription
phaseWalletEntryPhase

phase is the coarse lifecycle phase for this entry.

phase_labelstring

phase_label is a short lowercase label that clients can render as-is while they migrate to enum-based presentation.

payment_hashstring

payment_hash is populated for Lightning-backed send/recv entries.

txidstring

txid is populated when the backing ledger row has an onchain txid.

confirmation_heightint32

confirmation_height is populated once the source records it.

vtxo_outpointstring

vtxo_outpoint is populated when a swap observes the Ark vHTLC output.

preimagestring

preimage is the hex-encoded Lightning payment preimage once the swap revealed it. For a completed Lightning-backed send this is the proof of payment for the paid invoice (sha256(preimage) == payment_hash); it is empty until the preimage is durably known and for non-Lightning entries.

WalletEntryPhaseenum

WalletEntryPhase is a coarse, wallet-facing lifecycle phase. It is not a replacement for status; status answers whether the operation is pending, complete, or failed, while phase explains the current backing-system step.

NameNumberDescription
WALLET_ENTRY_PHASE_UNSPECIFIED0

WALLET_ENTRY_PHASE_UNSPECIFIED is the proto zero value used when the backing subsystem has no lifecycle hint.

WALLET_ENTRY_PHASE_REQUEST_CREATED1

WALLET_ENTRY_PHASE_REQUEST_CREATED means the request was created but no payment has been observed.

WALLET_ENTRY_PHASE_WAITING_FOR_PAYMENT2

WALLET_ENTRY_PHASE_WAITING_FOR_PAYMENT means the wallet is waiting for an inbound payment or swap funding.

WALLET_ENTRY_PHASE_PAYMENT_DETECTED3

WALLET_ENTRY_PHASE_PAYMENT_DETECTED means the backing subsystem has detected a payment but it is not yet settled.

WALLET_ENTRY_PHASE_SETTLING4

WALLET_ENTRY_PHASE_SETTLING means the operation is being settled through Ark, Lightning, or onchain machinery.

WALLET_ENTRY_PHASE_CONFIRMED5

WALLET_ENTRY_PHASE_CONFIRMED means the backing operation is confirmed or otherwise durably complete.

WALLET_ENTRY_PHASE_REFUNDING6

WALLET_ENTRY_PHASE_REFUNDING means the operation is currently refunding.

WALLET_ENTRY_PHASE_REFUNDED7

WALLET_ENTRY_PHASE_REFUNDED means the refund path completed.

WALLET_ENTRY_PHASE_FAILED8

WALLET_ENTRY_PHASE_FAILED means the backing operation reached a terminal failed state.

WALLET_ENTRY_PHASE_WAITING_FOR_CONFIRMATION9

WALLET_ENTRY_PHASE_WAITING_FOR_CONFIRMATION means an onchain payment has been detected and is waiting for block confirmation.

EntryFailureCodeenum

EntryFailureCode is a stable, machine-readable classification of why a FAILED WalletEntry failed. It complements the free-text failure_reason so clients can branch on failure cause without string matching.

NameNumberDescription
ENTRY_FAILURE_CODE_UNSPECIFIED0

ENTRY_FAILURE_CODE_UNSPECIFIED is the zero value used for non-failed entries or when the cause is unknown.

ENTRY_FAILURE_CODE_TIMED_OUT1

ENTRY_FAILURE_CODE_TIMED_OUT means the operation exceeded the wallet deadline before reaching a terminal state.

ENTRY_FAILURE_CODE_EXPIRED2

ENTRY_FAILURE_CODE_EXPIRED means the swap expired before it was funded.

ENTRY_FAILURE_CODE_REFUNDED3

ENTRY_FAILURE_CODE_REFUNDED means an outbound payment was refunded back to the wallet.

ENTRY_FAILURE_CODE_NEEDS_INTERVENTION4

ENTRY_FAILURE_CODE_NEEDS_INTERVENTION means the swap reached an anomalous state requiring manual recovery.

ENTRY_FAILURE_CODE_FAILED5

ENTRY_FAILURE_CODE_FAILED is a generic terminal failure with no more specific classification.

VTXOInventorymessage

VTXOInventory is the VTXOS-view body of ListResponse: the live spendable VTXO inventory.

FieldTypeDescription
vtxosrepeated WalletVTXO

vtxos are the live spendable VTXOs in the wallet. Order is unspecified.

totaluint32

total is the count of all live VTXOs before limit/offset.

WalletVTXOmessage

WalletVTXO is the wallet-facing view of one VTXO. Internal lifecycle detail (forfeiting flow, chain depth, etc.) is hidden; power-users can reach the full shape via `ark vtxos list`.

FieldTypeDescription
outpointstring

outpoint is the VTXO's outpoint in "txid:index" format.

amount_satint64

amount_sat is the value of the VTXO in satoshis.

statusstring

status is a short lowercase string: "live", "pending_forfeit", "forfeiting", "spending", "unilateral_exit". Internal terminal states (forfeited / spent / failed) are filtered out of the wallet view.

batch_expiryint32

batch_expiry is the absolute block height at which the batch-level timelock expires.

relative_expiryuint32

relative_expiry is the CSV delay (in blocks) for the unilateral exit path.

commitment_txidstring

commitment_txid is the hex-encoded txid of the on-chain commitment transaction anchoring this VTXO's tree.

OnchainHistorymessage

OnchainHistory is the ONCHAIN-view body of ListResponse: the on-chain transaction history.

FieldTypeDescription
txsrepeated OnchainTx

txs are the on-chain transaction history rows: boarding deposits, boarding sweeps, leave outputs, round commitment txs that touched this wallet. Sorted newest first.

totaluint32

total is the count of matching rows before limit/offset.

has_morebool

has_more is true when another page is available.

OnchainTxmessage

OnchainTx is the wallet-facing view of one on-chain transaction. It flattens the daemon's richer TransactionHistoryEntry shape to the fields a wallet user actually needs.

FieldTypeDescription
txidstring

txid is the hex-encoded transaction id, when known. Some ledger rows (e.g. fee_paid) do not carry a txid; those entries surface with txid="" and the row is still informative.

kindstring

kind is the high-level transaction type: "boarding", "sweep", "round", "oor", or "fee".

amount_satint64

amount_sat is the signed transaction amount in satoshis. Positive values are credits to this wallet; negative values are debits.

fee_satint64

fee_sat is the absolute fee paid (or pending) for this transaction, when known.

statusstring

status is a short lowercase string: "confirmed", "pending", "recorded", or a backing-specific lifecycle value.

confirmation_heightint32

confirmation_height is set when the source records a chain confirmation height.

created_at_unixint64

created_at_unix is the local creation timestamp in unix seconds.

descriptionstring

description is a human-readable local note.