Table of Contents

Class ArkPaymentRequest

Namespace
NArk.Abstractions.Payments
Assembly
NArk.Abstractions.dll

Tracks an inbound payment request — a request for someone to pay this wallet. Supports multiple payment options (Ark address, boarding address, Lightning invoice).

public record ArkPaymentRequest : IEquatable<ArkPaymentRequest>
Inheritance
ArkPaymentRequest
Implements
Inherited Members

Constructors

ArkPaymentRequest(string, string, ulong?, string?, ArkPaymentRequestStatus, ulong, DateTimeOffset, DateTimeOffset?)

Tracks an inbound payment request — a request for someone to pay this wallet. Supports multiple payment options (Ark address, boarding address, Lightning invoice).

public ArkPaymentRequest(string RequestId, string WalletId, ulong? Amount, string? Description, ArkPaymentRequestStatus Status, ulong ReceivedAmount, DateTimeOffset CreatedAt, DateTimeOffset? ExpiresAt)

Parameters

RequestId string
WalletId string
Amount ulong?
Description string
Status ArkPaymentRequestStatus
ReceivedAmount ulong
CreatedAt DateTimeOffset
ExpiresAt DateTimeOffset?

Properties

Amount

public ulong? Amount { get; init; }

Property Value

ulong?

ArkAddress

Ark protocol address for off-chain payment.

public string? ArkAddress { get; init; }

Property Value

string

BoardingAddress

On-chain boarding address (P2TR taproot).

public string? BoardingAddress { get; init; }

Property Value

string

ContractScripts

Contract scripts being watched for incoming VTXOs. Used internally to match VTXOs to this request.

public string[] ContractScripts { get; init; }

Property Value

string[]

CreatedAt

public DateTimeOffset CreatedAt { get; init; }

Property Value

DateTimeOffset

Description

public string? Description { get; init; }

Property Value

string

ExpectedAsset

Expected asset for this payment request. Null for BTC-only requests.

public VtxoAsset? ExpectedAsset { get; init; }

Property Value

VtxoAsset

ExpiresAt

public DateTimeOffset? ExpiresAt { get; init; }

Property Value

DateTimeOffset?

LightningInvoice

BOLT11 Lightning invoice (from reverse submarine swap).

public string? LightningInvoice { get; init; }

Property Value

string

Metadata

Application-level metadata.

public Dictionary<string, string>? Metadata { get; init; }

Property Value

Dictionary<string, string>

Overpayment

Sats received beyond the requested amount. Zero when Amount is null or not yet overpaid.

public ulong Overpayment { get; init; }

Property Value

ulong

ReceivedAmount

public ulong ReceivedAmount { get; init; }

Property Value

ulong

ReceivedAssets

Assets received so far. Null when no assets received yet.

public IReadOnlyList<VtxoAsset>? ReceivedAssets { get; init; }

Property Value

IReadOnlyList<VtxoAsset>

RequestId

public string RequestId { get; init; }

Property Value

string

Status

public ArkPaymentRequestStatus Status { get; init; }

Property Value

ArkPaymentRequestStatus

SwapId

Swap ID for the reverse submarine swap, if Lightning is an option.

public string? SwapId { get; init; }

Property Value

string

WalletId

public string WalletId { get; init; }

Property Value

string