Table of Contents

Class SettlementResult

Namespace
NArk.Abstractions.Settlement
Assembly
NArk.Abstractions.dll

The outcome of a completed settlement.

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

Constructors

SettlementResult(string, long, long, long?, uint256?, long?)

The outcome of a completed settlement.

public SettlementResult(string TransferId, long SourceAmount, long DestinationAmountSats, long? FeesPaidSats, uint256? TransactionId = null, long? DestinationAtomicAmount = null)

Parameters

TransferId string

Implementation-defined identifier for the transfer — an Arkade transaction id, an intent id, a swap id. Stable enough to correlate later status updates against.

SourceAmount long

What was actually taken from the wallet, in the request's source asset atomic units — satoshis for BTC.

DestinationAmountSats long

Satoshis expected at the destination. Equal to SourceAmount for same-asset BTC settlements; for a swap it is the amount net of swap and miner fees. For an asset settlement it is the satoshi carrier the asset rides on, with the asset amount itself reported in DestinationAtomicAmount.

FeesPaidSats long?

Total fees paid, in satoshis, or null when the rail cannot know them yet — a collaborative exit pays a batch fee that is only settled at confirmation. Reporting zero there would put a wrong number into an application's fee accounting rather than an absent one.

TransactionId uint256

The Arkade transaction id, when the settlement produced one directly.

DestinationAtomicAmount long?

Expected amount in the destination asset's own atomic units, for destinations that are not denominated in satoshis (a stablecoin transfer, for example). null when the destination is BTC.

Properties

DestinationAmountSats

Satoshis expected at the destination. Equal to SourceAmount for same-asset BTC settlements; for a swap it is the amount net of swap and miner fees. For an asset settlement it is the satoshi carrier the asset rides on, with the asset amount itself reported in DestinationAtomicAmount.

public long DestinationAmountSats { get; init; }

Property Value

long

DestinationAtomicAmount

Expected amount in the destination asset's own atomic units, for destinations that are not denominated in satoshis (a stablecoin transfer, for example). null when the destination is BTC.

public long? DestinationAtomicAmount { get; init; }

Property Value

long?

FeesPaidSats

Total fees paid, in satoshis, or null when the rail cannot know them yet — a collaborative exit pays a batch fee that is only settled at confirmation. Reporting zero there would put a wrong number into an application's fee accounting rather than an absent one.

public long? FeesPaidSats { get; init; }

Property Value

long?

SourceAmount

What was actually taken from the wallet, in the request's source asset atomic units — satoshis for BTC.

public long SourceAmount { get; init; }

Property Value

long

TransactionId

The Arkade transaction id, when the settlement produced one directly.

public uint256? TransactionId { get; init; }

Property Value

uint256

TransferId

Implementation-defined identifier for the transfer — an Arkade transaction id, an intent id, a swap id. Stable enough to correlate later status updates against.

public string TransferId { get; init; }

Property Value

string