Table of Contents

Namespace NArk.ArkadeIntents.Rfq

Classes

HttpRfqTransport

The HTTP transport: POST /v1/swap for quotes, GET /v1/rfq/{rfq_id} for status.

LegacyRfqPairAdapter

Explicitly adapts canonical discovery identities to the current solver's legacy RFQ vocabulary.

NostrRelayException

Thrown when the relay itself refuses or tears down what we asked of it.

NostrRfqTransport

The RFQ transport the protocol actually specifies: NIP-01 over a relay, addressed by pubkey.

RelayUnavailableException

Thrown when every relay is gone, so no reply could have reached us on any of them.

RfqProtocol

RFQ v1 — the request-for-quote negotiation layer shared by every Arkade swap corridor (Lightning, cross-chain and arkade-to-arkade alike).

RfqQuote<TProfile>

The solver's quote. Its binding fieldsSolverPubkey, RefundLocktime, ValidUntil, FromAmount and ToAmount — are the values a client may trust; everything in Profile is compare-only or informational, with one exception named there (an HTLC send quote's refund_without_receiver_delay, which the client builds into its script because it is the one number the client cannot derive).

RfqRefusal

A refusal carrying a reason from the closed set. Corridor-agnostic: it has no profile.

RfqRefusedException

Thrown when a solver declines a request.

RfqRequest<TProfile>

A request for a quote. Strict on the wire: only these fields, or the solver refuses it with UnsupportedPayload.

RfqStateExtensions

State-vocabulary helpers.

RfqStatus<TProfile>

The solver's view of a negotiation. Best-effort by design: the settlement is equally observable on-chain, and the spend that settles the contract is the ground truth. Treat this as a convenience, never as the money path.

TransportClosedException

Thrown when the transport was disposed while a negotiation was still waiting for a reply.

Interfaces

IRfqTransport

Carries the RFQ message family to a solver. The payloads are identical whatever the transport — only the framing differs — so a corridor's client is written once against this seam.

Enums

RfqAmountSide

Which leg of the pair the request's amount is fixed on.

RfqRefusalReason

The closed refusal set of RFQ v1. Anything outside it deserializes to Unknown — clients must treat an unrecognised reason as a generic decline and infer no retry semantics from it.

RfqState

The lifecycle vocabulary RFQ v1 shares across all settlement profiles.