Earn bitcoin with your podcast using Satoshis.Stream

Earn bitcoin as a podcaster!

View the Project on GitHub satoshisstream/satoshis.stream

TLV record registry

Senders and apps can send custom TLV fields in Lightning payments. Open a PR to add your own fields.

Key Subject Length (bytes) Description Additional information
696969 lnpay variable LNPay wallet destination See below
818818 hive variable Hive account name See below
7629168 tipping variable Tip note / destination Do not use
7629169 podcast variable JSON encoded metadata blip-0010
7629171 tipping variable Tip note / destination See below
7629173 podcast variable Proposed (WIP) standard See below
7629175 podcast 64 PodcastIndex ID or GUID  
34349334 chat variable Chat message Whatsat and more
34349337 chat ~71 Signature See below
34349339 chat 33 Send pubkey Whatsat and more
34349340 chat variable Thunder Hub Sending Node Name  
34349343 chat 8 Timestamp See below
34349345 chat variable Thunder Hub Content type typically “text”
34349347 chat variable Thunder Hub Request type typically “text”
112111100 lnpay variable LNPay Wallet ID See below
133773310 podcast variable JSON encoded data See below
5482373484 keysend 32 Preimage as 32 bytes  

Additional information

Field 7629168 [PROBLEMATIC! Use 7629171]

Tip note Problem is: “a Sending node MUST NOT send evenly-typed TLV records in the extension without prior negotiation.” according to spec. So use 7629171!

Field 7629171

Tip note

Field 7629173 (PROPOSED)

WIP standard for streaming value sending. JSON metadata about the sent payment.

{
  "version": 1.0,
  "sender": {
    "identifier": "GUID",
    "name": "ListenerX",
    "key": "XYZ",
    "sig": "Signature of pipe-delimited concatenation of base64-encoded identifier + sender_key + destinations + payments JSON",
    "app_name": "Sending application name",
    "app_version": "1.3.3.7"
  },
  "destinations": {
    "1": {
      "type": "podcast",
      "url": "https://example.com/podcast.rss",
      "guid": "EPGUID1111",
      "split_name": "Name from value tag"
    },
    "2": {
      "type": "website",
      "domain": "example.com",
      "uri": "/page.html"
    }
  },
  "payments": [
    { "dest": "1", "value_msat": 1337, "ts": 30, "action": "stream" },
    { "dest": "1", "value_msat": 1337, "ts": 40 },
    { "dest": "1", "value_msat": 1337, "ts": 50 },
    { "dest": "1", "value_msat": 1337, "ts": 60 },
    { "dest": "1", "value_msat": 7777, "ts": 60, "action": "boost", "message": "Great part!" },
    { "dest": "1", "value_msat": 1337, "ts": 70 },
    { "dest": "1", "value_msat": 1337, "ts": 80, "speed": "2" },
    { "dest": "1", "value_msat": 1337, "ts": 90 },
    { "dest": "2", "value_msat": 8888, "message": "Thanks for the site" }
  ]
}

Field 7629175

Set to the podcastindex (podcast) ID or GUID for processing

Field 34349337

See Whatsat spec signature(sender | recipient | timestamp | msg), DER-encoded ECDSA

Field 34349343

See Whatsat spec Timestamp in nano seconds since unix epoch (big endian encoded)

Field 133773310

Podcast metadata as sent by Sphinx. Concatenation of JSON encoded data and signature of the JSON string. Suggested to use 7629169.

Fields used in customKey / customValue Pairs

Field 696969 - LNPay

This field allows a payment to be sent to a wallet on the LNPay Site. When used in conjunction with a keyValue given on that site, LNPay users can receive Keysend Value 4 Value streaming payments.

For any Wallet on LNPay navigate to the LNPay Dashboard, find a wallet and select details. In the Keysend section there is a box:

To KEYSEND to via LND to THIS WALLET run the command below:

lncli sendpayment -d 033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500 -a [NUM_SATOSHIS] --keysend --data 696969=77616c5f6872444873305242454d353736

The Value block for this wallet should be:

<podcast:valueRecipient name="Your Name Here"
  address="033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500"
  type="node" split="99" customKey="696969" customValue="77616c5f6872444873305242454d353736">
</podcast:valueRecipient>

Field 818818 - Hive

Field used by 3speak and other services redirecting Lightning payments to the Hive blockchain via the v4v.app service. This field is a str containing the Hive Account Name of the recipient, to be used in a customKey, customValue pair.

For example this value block will redirect to the brianoflondon Hive account:

<podcast:valueRecipient name="Brian of London"
  address="0396693dee59afd67f178af392990d907d3a9679fa7ce00e806b8e373ff6b70bd8"
  type="node" split="99" customKey="818818" customValue="brianoflondon">
</podcast:valueRecipient>

Field 112111100 - LNPay

Alternative to 696969 but using the field Wallet ID from the Wallet Access Keys.

Wallet ID’s are text fields looking like wal_hrDHs0RBEM576

The Value block for this wallet should be:

<podcast:valueRecipient name="Your Name Here"
  address="033868c219bdb51a33560d854d500fe7d3898a1ad9e05dd89d0007e11313588500"
  type="node" split="99" customKey="112111100" customValue="wal_hrDHs0RBEM576">
</podcast:valueRecipient>