Table of Contents

Class LightningReceiveProfile

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

The lightning:BTC->arkade:BTC profile: be paid over Lightning and receive the sats on Arkade.

public static class LightningReceiveProfile
Inheritance
LightningReceiveProfile
Inherited Members

Remarks

The mirror image of LightningSendProfile, and the roles invert with it. Here the solver is the one exposed: it funds the Arkade side before the Lightning payment it is owed has settled, because settlement only happens when the client's claim reveals the preimage. That is also why the client, not the solver, chooses the preimage.

The solver mints the invoice, so nothing implies the amount the way a client-supplied BOLT11 does on the send leg — it is always stated explicitly, and the caller says which leg it names.

That choice decides who absorbs the solver's spread, and it is the caller's to make because the two answers suit different callers. Pinning the to leg fixes what lands on Arkade and bills the payer more; pinning the from leg fixes what the payer is billed and nets the spread out of the payout. A wallet asking to receive a round number wants the first. A merchant wants the second: an invoice for anything other than the order total is one a LUD-06 wallet refuses, because it checks the invoice against the amount the customer approved.

Fields

Pair

The pair this profile negotiates.

public const string Pair = "lightning:BTC->arkade:BTC"

Field Value

string

Methods

Request(long, RfqAmountSide, string, string, string, string?, string?)

Build a receive-leg request.

public static RfqRequest<LightningReceiveRequestProfile> Request(long amountSats, RfqAmountSide amountSide, string paymentHash, string payoutAddress, string payoutPubkey, string? claimPacket, string? rfqId = null)

Parameters

amountSats long

The size being asked for, in sats — of the leg amountSide names.

amountSide RfqAmountSide

Which leg amountSats pins: To for what lands on Arkade, From for what the payer is billed.

paymentHash string

SHA-256 of the client's own preimage (hex).

payoutAddress string

The client's Arkade address to be paid at.

payoutPubkey string

The client's x-only key (hex) — the claiming key on this leg.

claimPacket string

The preimage sealed to covclaimd, base64, or null when there is no covclaimd to seal to. Omitted rather than faked: a packet sealed to a key nobody holds is a claim path that looks present and is not, and the client can always claim the lockup itself.

rfqId string

The correlation id; a fresh one is generated when omitted.

Returns

RfqRequest<LightningReceiveRequestProfile>

The request payload, ready for a transport.