Table of Contents

Class OnchainReceiveQuoteProfile

Namespace
NArk.ArkadeIntents.Rfq.Profiles.Onchain
Assembly
NArk.ArkadeIntents.dll

Quote fields of the onchain receive profile — compare-only, never trusted.

public sealed class OnchainReceiveQuoteProfile
Inheritance
OnchainReceiveQuoteProfile
Inherited Members

Remarks

Two contracts on two rails again, but the funding order is the mirror of the send leg's: the client funds the L1 HTLC first and the solver funds the Arkade lockup against it. So of the two addresses quoted here, HtlcAddress is the one the client actually pays into, and LockupAddress is the one it will later claim from. Both are rebuilt locally and the solver's rendering of either is only ever compared against ours.

Properties

ClaimPubkey

The solver's x-only key (hex) on the L1 HTLC's claim leaf — what it spends with once the client's Arkade claim has published the preimage.

public string? ClaimPubkey { get; init; }

Property Value

string

Remarks

The role-reversed counterpart of the send leg's htlc_pubkey: there the solver held the L1 refund role, here it holds the claim role.

HtlcAddress

The solver's derivation of the L1 HTLC address. Compare-only — and this is the one the client funds.

public string? HtlcAddress { get; init; }

Property Value

string

HtlcLocktime

The L1 HTLC's absolute refund locktime, unix seconds — when the client's own way out opens.

public long? HtlcLocktime { get; init; }

Property Value

long?

Remarks

Must mature after the solver's Arkade refund, which is the inverse of the send leg's ordering and follows from the inverted funding order — see OnchainReceiveGates.

LockupAddress

The solver's derivation of the Arkade covenant's address. Compare-only — the solver funds this one, so a mismatch against the local reconstruction means the claim would target the wrong script.

public string? LockupAddress { get; init; }

Property Value

string

MinConfirmations

How many confirmations the client's L1 funding needs before the solver will act on it.

public int? MinConfirmations { get; init; }

Property Value

int?

PaymentHash

The payment hash, echoed back from the request.

public string? PaymentHash { get; init; }

Property Value

string

SolverRefundPkScript

The solver's own refund destination as a P2TR scriptPubKey (hex), which the Arkade covenant's nonInteractiveRefund leaf pins its payout to.

public string? SolverRefundPkScript { get; init; }

Property Value

string

Remarks

Compare-only, but also an input: every leaf feeds the merkle root, so the local reconstruction needs this exact value to reach a matching address. The same role the Lightning receive leg's solver_refund_pk_script plays, for the same reason — on a leg the solver funds, its refund destination is the one covenant parameter nothing else on the wire fixes.