The Murmurations Protocol, which we also just call Murmurations, is a standardised, open source set of rules and tools designed to enable decentralised collaboration at scale. Murmurations uses existing standards including JSON Schema, Schema.org, RSS and JSON-LD to help people, projects and organisations discover each other and share data across platforms and between networks. The ultimate aim of Murmurations is to accelerate the global transition to the regenerative economy.
This post is designed to explain how the various parts fit together. See the explanations below the diagram for more detail and links to examples.
The Murmurations Library
The Murmurations Library is hosted on Github and stores a list of Murmurations Schemas and data fields. Anyone can define a new Schema, or data field, and create a pull request to have it added it to the Library.
A Murmurations schema is a JSON Schema file which defines a collection of data fields and explains how they should be used. Schemas validate the data entered in a Profile to make sure it matches the expected format. Schemas define the composition of fields, and fields define the type and validation rules for data. See the Murmurations Map Schema file as an example.
A Murmurations Profile is a JSON document describing a Node (person, project, etc.), using one or more Schemas. Here’s an example Murmurations Profile describing The Open Co-op, using the Murmurations Map schema.
The Murmurations Profile Generator
The Murmurations Profile Generator, or MPG for short, is a web application for creating Profiles. MPG automatically converts Schemas in the Library into forms to help people to create the JSON Profiles. MPG can also host Profiles (and also posts them to IPFS), which may seem an odd way to manage decentralised data, but is an important feature which makes the protocol accessible to people who can’t host their own Profile files.
Murmurations WordPress Node Plugin
If you run a WordPress website you can use the Murmurations WordPress Node Plugin to create a Profile (partly automatically, from the data already stored in your WordPress database) and to post your profile to the Murmurations Index, without leaving the backend of your WordPress site. NB – The Node Plugin is currently under development to work with the latest version of the Index and to improve the UI.
The Murmurations Index:
The Murmurations Index keeps track of all the Profiles in the network. Whenever someone (or something) updates its Profile it tells the Index. Aggregators frequently query the Index to find Profiles using their Schemas along with changes to existing Profiles, enabling them to provide up to date information in their maps, directories and content aggregators.
The Murmurations API
The Murmurations API provides the means of interacting with the Murmurations Index. It can be used to post, update and delete Profiles, as well as to search the Index. Aggregators can search the Index via the API for nodes based on any of the following parameters:
- A specific schema (
- When the node was last updated by the index (
- A distance in kilometers (“25km”) or miles (“15mi”)) from a specific geolocation (
- By city/town/village/etc, state/province/county/etc. and/or country. (
- By node profile status (
- By tags that describe the node (using an AND/OR filter with fuzzy or exact matching)
- By the nodes website address (
Query results can be paginated using the
Aggregators will eventually be required to authenticate themselves with an API key or JWT (to be determined) to access this endpoint.
The Murmurations WordPress Aggregator
The Murmurations WordPress Aggregator is a WordPress plugin which makes it simple for content aggregators to create maps and directories using data from the Murmations Index. See for example, the Community Currency Alliance Map which features details of community currency projects around the world, all of whom have published Murmurations profiles according to the complementary currency schema, in the Library.