RSS, Atom, and JSON Feed
Web Monetization links can be used with content syndication formats RSS 2.0, Atom XML, and JSON Feed. Feed readers and podcasting apps can expose a piece of content’s wallet address or payment pointer to a Web Monetization client, such as the Interledger Foundation’s Web Monetization browser extension or embedded SDK.
RSS 2.0
Section titled “RSS 2.0”Web Monetization wallet addresses are represented in RSS 2.0 using the <atom:link>
element. The rel
attribute value must be monetization
. The href
attribute must be a URL of an Open Payments-enabled wallet address or payment pointer.
RSS must be extended with the Atom Syndication Format by adding the Atom namespace to the rss
element:
<rss xmlns:atom="http://www.w3.org/2005/Atom">
Monetization <atom:link>
elements may be children of <channel>
and <item>
elements.
Monetization <atom:link>
elements added as children of the <channel>
element apply to the channel itself and its items.
An <item>
element inherits the channel’s monetization links unless the <item>
element has monetization <atom:link>
child elements of its own.
Podcast example
Section titled “Podcast example”<?xml version="1.0" encoding="UTF-8"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"> <channel> <atom:link rel="self" href="https://podcast.example/feed.xml" type="application/rss+xml"/> <title>Fintech News Podcast</title> <podcast:guid>0000a0a0-0000-0000-0000-0a000aa0a0a0</podcast:guid> <link>https://podcast.example/fintech-news</link> <podcast:medium>podcast</podcast:medium> <itunes:type>episodic</itunes:type> <category>Technology</category> <itunes:category text="Technology"/> <itunes:author>Fintech News</itunes:author>
<!-- Web Monetization wallet address/payment pointer for feed and items --> <atom:link rel="monetization" href="https://wallet.example/fintech-news"/>
<!-- Optionally include wallet address/payment pointer as a podcast:funding element --> <podcast:funding url="https://wallet.example/fintech-news">Support the show!</podcast:funding>
<item> <!-- This item inherits the channel’s monetization links --> <title>Big Fun Conference announcements</title> <enclosure url="https://example.com/bfc-2024/audio.mp3" length="123" type="audio/mpeg"/> <guid>https://example.com/bfc-2024/</guid> <pubDate>Thu, 05 Dec 2024 15:56:55 GMT</pubDate> <description>Episode description…</description> <itunes:duration>123</itunes:duration> <link>https://example.com/bfc-2024/</link> <itunes:image href="https://example.com/bfc-2024/image.jpg"/> <itunes:episode>1</itunes:episode> <itunes:season>1</itunes:season> <itunes:episodeType>full</itunes:episodeType> <podcast:season>1</podcast:season> <podcast:episode>1</podcast:episode> </item>
<item> <!-- This item has its own monetization links --> <title>Canada is calling</title> <enclosure url="https://example.com/2024-canada/audio.mp3" length="321" type="audio/mpeg"/> <guid>https://example.com/2024-canada/</guid> <pubDate>Thu, 05 Dec 2024 16:06:17 GMT</pubDate> <description>Episode description…</description> <itunes:duration>321</itunes:duration> <link>https://example.com/2024-canada/</link> <itunes:image href="https://example.com/2024-canada/image.jpg"/> <itunes:episode>2</itunes:episode> <itunes:season>1</itunes:season> <itunes:episodeType>full</itunes:episodeType> <podcast:season>1</podcast:season> <podcast:episode>2</podcast:episode>
<atom:link rel="monetization" href="https://wallet.example/fintech-news"/> <atom:link rel="monetization" href="https://wallet.example/erica"/> </item> </channel></rss>
Web Monetization wallet addresses and payment pointers are represented in Atom Syndication Format using the <link>
element with the rel="monetization"
attribute. The rel
value must be monetization
. The href
value must be a URL of an Open Payments-enabled wallet address or payment pointer.
Monetization <link>
elements may be added as children of <feed>
and <entry>
elements.
Monetization <link>
elements added as children of the <feed>
element apply to the feed itself and its entries.
An <entry>
element inherits the feeds’s monetization links unless the <entry>
element has monetization <link>
child elements of its own.
Example
Section titled “Example”<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"> <title>Fintech News</title> <link rel="self" type="application/atom+xml" href="https://example.com/atom.xml"/> <link rel="alternate" type="text/html" href="https://example.com/"/> <id>https://example.com/atom.xml</id> <updated>2024-12-18T19:54:03Z</updated>
<!-- Web Monetization wallet address/payment pointer for feed and entries --> <link rel="monetization" href="https://wallet.example/fintech-news"/>
<entry> <!-- This entry inherits the channel’s monetization links --> <title>Big Fun Conference announcements</title> <link href="https://example.com/bfc-2024/"/> <updated>2024-12-05T16:56:55+01:00</updated> <id>https://example.com/bfc-2024/</id> <content type="html">Article content here…</content> </entry>
<entry> <!-- This entry has its own monetization links --> <title>Canada is calling</title> <link href="https://example.com/2024-canada/"/> <link rel="monetization" href="https://wallet.example/fintech-news"/> <link rel="monetization" href="https://wallet.example/erica"/> <updated>2024-12-05T17:06:17+01:00</updated> <id>https://example.com/2024-canada/</id> <content type="html">Article content here…</content> </entry></feed>
JSON Feed
Section titled “JSON Feed”Web Monetization wallet addresses are represented in JSON Feed 1.1 using the _monetization
extension object.
Per the JSON Feed 1.1 specification, extensions must have a property name that begins with an underscore and be assigned an object.
_monetization
extension object
Section titled “_monetization extension object”Property | Required | Data type | Description |
---|---|---|---|
about | No | string | A link to the page explaining the extension object’s purpose. It should appear in the first use of the extension object only. |
links | Yes | Array of strings | Specifies one or more Open Payments-enabled wallet addresses or payment pointers. |
The _monetization
extension may be added to the top-level document and to individual items in the items
array.
An item in the items
array inherits the top-level _monetization
values unless the item contains a _monetization
extension object of its own.
Example
Section titled “Example”{ "version": "https://jsonfeed.org/version/1.1", "title": "Fintech News", "home_page_url": "https://example.com/", "feed_url": "https://example.com/jsonfeed.json",
// Web Monetization wallet address/payment pointer for feed and items "_monetization": { "about": "https://webmonetization.org/developers/rss-atom-jsonfeed/", "links": ["https://wallet.example/fintech-news"], },
"items": [ { // This item will inherit the feed’s _monetization "title": "Big Fun Conference announcements", "date_published": "2024-12-05T16:56:55+01:00", "id": "https://example.com/bfc-2024/", "url": "https://example.com/bfc-2024/", "content_html": "Article content here…", }, { // This item specifies its own monetization links "title": "Canada is calling", "date_published": "2024-12-05T17:06:17+01:00", "id": "https://example.com/2024-canada/", "url": "https://example.com/2024-canada/", "_monetization": { "links": [ "https://wallet.example/fintech-news", "https://wallet.example/erica", ], }, "content_html": "Article content here…", }, ],}