Deggen ([email protected])
We specify a paymail capability extension which supports the passing of BEEF Transactions between hosts. The procedure for service discovery and requesting outputs is not detailed, rather this proposal contains only a recommendation to replace BRC-12 RawTx hex data with BRC-62 BEEF hex data.
We propose that p2p destination and receive raw transaction functionality between hosts to include the data required for the counterparty to run SPV on the transaction.
A random ID was generated in order to avoid label collisions in the capability document of a paymail server.
brfcid: 5c55a7fdb7bb
title: Background Evaluation Extended Format Transaction
author: Darren Kellenschwiler
version: 1.0.0
We specify that an endpoint for delivery of transaction data ought to be added to the capabilities object in the .well-known response of a paymail service with the label: 5c55a7fdb7bb
.
<!-- capabilities document of the host -->
{
"capabilities": {
"5c55a7fdb7bb": "https://paymail.domain.tld/api/v1/beef/{alias}@{domain.tld}",
<!-- ...others -->
}
}
The sender must replace the {alias}
and {domain.tld}
placeholders in the URI template provided by capabilities.5c55a7fdb7bb
with a valid Paymail handle. The client must then perform a POST HTTP request with the following body:
{
"beef": "<beef_transaction_hex>", <!-- note the label is different >
"metadata": {
"sender": "<sender_paymail>",
"pubkey": "<sender_public_key>",
"signature": "<signature_of_txid>",
"note": "<optional_human_readable_note>"
},
"reference": "<payment_reference>"
}
BEEF transaction hex is a string encoding of the binary format detailed in BRC-62.
The server must validate the transaction and respond with the accepted transaction ID and an optional human-readable note.
{
"txid": "<accepted_txid>",
"note": "<optional_human_readable_note>"
}
A swimlanes diagram is included here for further clarification: https://swimlanes.io/u/6J2q8QCEb