Channel's derived Identity (holds the private key used to EC-encrypt).
Raw application payload.
Sender's Identity (supplies the prelude public key).
OptionalstampCost?: number | nullrfed PoW cost. null or 0
disables stamping (no stamp appended); any positive value appends a real
32-byte stamp.
Wraps an arbitrary (non-LXMF) payload into a rfed channel SEND payload.
Like wrapChannelMessage but skips LXMF serialisation entirely. The plaintext is just the RTID prelude (magic + sender public key) followed by the raw payload bytes — the application payload is self-describing and self-authenticating (e.g. a Dacar delta carries its own issuer hash, Ed25519 signature, and timestamp), so the LXMF destination/source/signature framing is redundant and only wastes MTU.
Wire format (
RFed/SPEC.md"CANONICAL WIRE FORMAT"; the inner_blob is opaque to the node):The RTID prelude is retained so the message is identifiable as a rfed channel message and the sender identity is recoverable by subscribers. The node treats
inner_blobopaquely — it never decrypts or inspects it — so this is fully compatible with both the Rust and JS rfed nodes. Only subscribers holding the channel private key can recover the payload.Integrity is the application's responsibility: the channel EC gate ensures only authorised subscribers can produce a valid
inner_blob, but the payload itself should carry its own authentication (e.g. an embedded Ed25519 signature) since rfed does not verify it.