Outbound Transaction Start
This event is used to "burn" exiting tokens in the Ledger module.
Event Signature
An Outbound Transaction Start event has the following form:
{
  "id": "{eventId}",
  "pubkey": "{minterPubkey}",
  "created_at": timestamp,
  "kind": 1112,
  "tags": [
    ["p", "{ledgerPubkey}"],
    ["p", "{minterPubkey}"],
    ["t", "outbound-transaction-start"],
    ...,
  ],
  "content": "{outboundTransactionContent}",
  "sig": "{signature}"
}Note:
- the 
.pubkeyis the URLx module's pubkey (ie. the minter), - the 
.kindfield is1112(ie. a regular event), - the first 
"p"tag points to the Ledger module's pubkey, - the second 
"p"tag points to the URLx module's pubkey, - the 
"t"tag sub-kind isoutbound-transaction-start. 
The content itself is the JSON serialization of an object of the following form:
{
    "tokens": {
        "{tokenName}": tokenAmount,
        ...,
    },
    "memo": "{memoString}"
}Where the .memo entry is optional.
Each tokenAmount must be positive, and each tokenName must exist in the Ledger module (notice that the BTC token is expressed in milli-satoshis).
An example TypeScript type definition for this event's content is:
type OutboundTransactionStartContent = {
    tokens: Record<string, bigint>,
    memo?: string,
};Emitters
This event is emitted by:
- The URLx module, when paying an invoice.
 
Targets
This event is targeted towards:
- The Ledger module.
 
Listeners
This event is listened for by:
- The Ledger module.
 - Any other agent listening for this event will learn about the cash flow of the URLx module.