Skip to main content

Layers

The bitcoin layers Cassis routes across, and how each one expresses an HTLC.

Overview

A Cassis payment is a route with any number of hops, each of which is a HTLCs, all bound to the same hash H and honoring strictly decreasing timeouts. Each network expresses that HTLC in its own idiom, the preimage R (with H = sha256(R)) is the only key that settles a hop, and a timeout always opens a refund path.

● Lightning

Protocol
BOLT
NetworkId
lightning
HTLC
native BOLT update_add_htlc with payment_hash and cltv_expiry
DISPATCH descriptor
BOLT11 hold invoice (payment_request), sent as the outgoing target the payer pays verbatim to preserve the payment secret
Default delta timeout
30 s

● Liquid

Protocol
Liquid
NetworkId
liquid (mainnet), liquid::testnet
HTLC
P2WSH script, OP_HASH160 <RIPEMD160(payment_hash)> claim path with CLTV refund
DISPATCH descriptor
lockup outpoint (lockup_txid + lockup_vout) pinning the broadcast lockup tx, plus refund_pubkey and refund_locktime; the claim side is rebuilt from the route hash
Default delta timeout
300 s

● Arkade

Protocol
Arkade
NetworkId
arkade (mainnet), arkade::testnet
HTLC
VhtlcScript taproot tree, RIPEMD160(payment_hash), seconds-based timelocks
DISPATCH descriptor
VHTLC options — sender, receiver, server x-only keys, payment_hash160, refund_locktime, and three unilateral CSV delays (unilateral_claim_delay, unilateral_refund_delay, unilateral_refund_without_receiver_delay)
Default delta timeout
60 s

● Cashu

Protocol
Cashu
NetworkId
cashu::<host[:port]> (each mint is a separate network)
HTLC
NUT-14 spending conditions on a NUT-10 HTLC secret
DISPATCH descriptor
NUT-14 locked ecash proofs, one base64-encoded NUT-00 Proof per element
Default delta timeout
30 s

● Fedimint

Protocol
Fedimint
NetworkId
fedimint::<invite_code> (each fedimint is a separate network)
HTLC
LNv2 Lightning module
DISPATCH descriptor
Bolt11 invoice the counterparty must pay (fedimint sells its own preimage, so the descriptor is the invoice, not a proof set)
Default delta timeout
30 s

● Rootstock

Protocol
Rootstock
NetworkId
rootstock (mainnet), rootstock::testnet
HTLC
EtherSwap v3 contract, sha256 precompile matches H byte-for-byte
DISPATCH descriptor
contract address, amount_wei, claim_address, refund_address, and block-height timelock
Default delta timeout
600 s