Table of Contents

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

string

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

amountSats long

The size being traded, on the leg amountSide names.

amountSide RfqAmountSide

Which leg amountSats pins: From for what the client sends on L1, To for what lands on Arkade.

paymentHash string

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

claimPacket string

That preimage sealed to covclaimd, base64, or null when there is no covclaimd to seal to — omitted rather than faked, for the reason the Lightning receive profile gives.

refundPubkey string

The client's x-only key (hex) on the L1 HTLC's refund leaf.

payoutAddress string

The client's Arkade address the lockup must pay.

payoutPubkey string

The client's x-only Arkade key (hex) — the covenant's claiming role.

rfqId string

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

Returns

RfqRequest<OnchainReceiveRequestProfile>

The request payload, ready for a transport.