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
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
amountSatslongThe size being asked for, in sats — of the leg
amountSidenames.amountSideRfqAmountSideWhich leg
amountSatspins: To for what lands on Arkade, From for what the payer is billed.paymentHashstringSHA-256 of the client's own preimage (hex).
payoutAddressstringThe client's Arkade address to be paid at.
payoutPubkeystringThe client's x-only key (hex) — the claiming key on this leg.
claimPacketstringThe preimage sealed to covclaimd, base64, or
nullwhen 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.rfqIdstringThe correlation id; a fresh one is generated when omitted.
Returns
- RfqRequest<LightningReceiveRequestProfile>
The request payload, ready for a transport.