Class OnchainReceiveProfile
- Namespace
- NArk.ArkadeIntents.Rfq.Profiles.Onchain
- Assembly
- NArk.ArkadeIntents.dll
The onchain:BTC->arkade:BTC profile: on-board Bitcoin L1 sats into an Arkade balance.
public static class OnchainReceiveProfile
- Inheritance
-
OnchainReceiveProfile
- Inherited Members
Remarks
The mirror of OnchainSendProfile, and the exposure mirrors with it. There the client funded Arkade first and was repaid on L1; here the client funds the L1 HTLC first and the solver funds the Arkade lockup against it — so the solver is the one paying out ahead of being paid, and it collects only when the client's Arkade claim publishes the preimage.
The client still chooses the secret, for the same reason it does on the Lightning receive leg:
whoever is owed the second leg must not be able to release the first on its own. So the client
picks P, funds L1 against sha256(P), claims the Arkade lockup with it, and that
claim is what lets the solver take the L1 side.
The deadlines invert with the funding order. On the send leg the client's Arkade refund had to
open last; here the solver's Arkade refund must open first, before the client's
L1 refund leaf — see OnchainReceiveGates for what the client checks before it funds.
Fields
Pair
The pair this profile negotiates.
public const string Pair = "onchain:BTC->arkade:BTC"
Field Value
Methods
Request(long, RfqAmountSide, string, string?, string, string, string, string?)
Build an on-board request.
public static RfqRequest<OnchainReceiveRequestProfile> Request(long amountSats, RfqAmountSide amountSide, string paymentHash, string? claimPacket, string refundPubkey, string payoutAddress, string payoutPubkey, string? rfqId = null)
Parameters
amountSatslongThe size being traded, on the leg
amountSidenames.amountSideRfqAmountSideWhich leg
amountSatspins: From for what the client sends on L1, To for what lands on Arkade.paymentHashstringSHA-256 of the client's own preimage (hex).
claimPacketstringThat preimage sealed to covclaimd, base64, or
nullwhen there is no covclaimd to seal to — omitted rather than faked, for the reason the Lightning receive profile gives.refundPubkeystringThe client's x-only key (hex) on the L1 HTLC's refund leaf.
payoutAddressstringThe client's Arkade address the lockup must pay.
payoutPubkeystringThe client's x-only Arkade key (hex) — the covenant's claiming role.
rfqIdstringThe correlation id; a fresh one is generated when omitted.
Returns
- RfqRequest<OnchainReceiveRequestProfile>
The request payload, ready for a transport.