Memory makes your digital identity portable across the internet. Followers you gain, content you like, reviews you leave—everything you create online—should move effortlessly with you, no matter which app you’re using. It’s not about ideology; it’s about convenience, better experiences, and reducing friction among the apps you love. Memory Protocol lets individuals upload both structured and unstructured data and earn a share of the fees that consumer applications pay to access it. Payments are made in $MEM: a portion goes to the protocol treasury, the remainder is routed to the data owners whose information was queried. Because a user’s earnings scale with how frequently their data is consumed, contributors are naturally incentivised to submit high-quality, well-described datasets. Hero

Social Graphs

What it is

Memory allows users to monetize their personal data, either public or private, by uploading it to the protocol and allowing consumer apps to access it by paying a fee in $MEM. With that, consumer apps can create an enriched user experience by tapping into complex public and private data from their users. Part of the fees go to the protocol and the rest goes to the user that provided data.

How it works

For publicly available data like Twitter and Farcaster follow graphs and posts, the user doesn’t need to do any action, Memory’s backend automatically indexes data for any user and provides it to consumer apps. Even for public data that doesn’t require any action, users are rewarded in part of the protocol fees if they get queried by consumer apps as an onboarding incentive to upload private data. Consumer applications can access data through the Memory API using either pre-purchased API credits with $MEM tokens or through x402 micropayments for one-off purchases. The Memory Fee Router automatically splits payments between the protocol treasury and data providers, with weekly reward distributions through an on-chain Merkle Tree distributor contract.

Uploading private data

There are 2 types of private data: structured and unstructured. Structured data is a set of data defined and validated by Memory, where users can upload and expect a fixed price per query via consumer apps. New structured data options will be rolled out as the protocol evolves, like ChatGPT conversation history, Spotify listening history and more. The unstructured data market is a more complex setup, where users will be able to upload any kind of data with a valid schema for consumption, and data curators will evaluate the quality and value for it so the price paid by consumer apps is fair when querying it. In the future, curators will stake $MEM to signal data quality, earning rewards for accurate assessments.

Identity Graphs

What it is

A user identity is made up of different Web2 identities (Twitter, GitHub, website, email) and onchain identities (wallet, Farcaster, Lens). Apps and developers usually only have access to a portion of this data, and querying it across platforms can be complex. Memory introduces Identity Graphs: an array of different user identities from Web2 and Web3 sources that together form a user’s online persona. With the Memory API, you can query the identity graph of any user using just a wallet address, ENS, Basename, or a Farcaster, Lens, or Zora username.

How it works

Identity Graphs are built by querying publicly available links for a user, registering the source of each identity, and connecting them. At the end, you get a comprehensive list of a user’s identities along with their sources, making it possible to evaluate and filter out untrustworthy data. In addition to public sources, the Memory App allows users to curate their own identity graph by adding or removing identity links.

In practice

Below you can see the whole identity graph of Jesse Pollak by querying its main wallet ENS jesse.xyz. As you can see we have identities for Ethereum, Farcaster, Twitter, GitHub, Basenames, Talent Protocol, Lens, website and email, all queried from a single ENS name. And each identity node has a source field, which describes from which other identities and platforms the link was found. For more information about the available identities, check the identities section.
[
  // ...
	{
		"id": "0x849151d7d0bf1f34b70d5cad5149d28cc2308bf1",
		"platform": "ethereum",
		"url": "https://etherscan.io/address/0x849151d7d0bf1f34b70d5cad5149d28cc2308bf1",
		"avatar": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0ib3B0aW1pemVTcGVlZCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij48cGF0aCBmaWxsPSJoc2woOTUgNzMlIDc1JSkiIGQ9Ik0wLDBIOFY4SDB6Ii8+PHBhdGggZmlsbD0iaHNsKDEzMCA5MiUgMjQlKSIgZD0iTTAsMGgxdjFoLTF6TTcsMGgxdjFoLTF6TTMsMGgxdjFoLTF6TTQsMGgxdjFoLTF6TTAsMWgxdjFoLTF6TTcsMWgxdjFoLTF6TTMsMWgxdjFoLTF6TTQsMWgxdjFoLTF6TTEsMmgxdjFoLTF6TTYsMmgxdjFoLTF6TTIsM2gxdjFoLTF6TTUsM2gxdjFoLTF6TTIsNGgxdjFoLTF6TTUsNGgxdjFoLTF6TTMsNGgxdjFoLTF6TTQsNGgxdjFoLTF6TTIsNWgxdjFoLTF6TTUsNWgxdjFoLTF6TTMsNWgxdjFoLTF6TTQsNWgxdjFoLTF6TTAsNmgxdjFoLTF6TTcsNmgxdjFoLTF6TTMsNmgxdjFoLTF6TTQsNmgxdjFoLTF6Ii8+PHBhdGggZmlsbD0iaHNsKDg2IDk3JSA4NSUpIiBkPSJNMiwxaDF2MWgtMXpNNSwxaDF2MWgtMXpNMiwyaDF2MWgtMXpNNSwyaDF2MWgtMXpNMSw0aDF2MWgtMXpNNiw0aDF2MWgtMXpNMiw2aDF2MWgtMXpNNSw2aDF2MWgtMXoiLz48L3N2Zz4=",
		"username": null,
		"social": null,
		"sources": [
			{
				"id": "99",
				"platform": "farcaster",
				"verified": true
			},
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			}
		]
	},
	{
		"id": "99",
		"platform": "farcaster",
		"url": "https://warpcast.com/jessepollak",
		"social": {
			"followers": 496387,
			"following": 1877,
			"verified": null
		},
		"avatar": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/1013b0f6-1bf4-4f4e-15fb-34be06fede00/original",
		"username": "jessepollak",
		"sources": [
			{
				"id": "99",
				"platform": "farcaster",
				"verified": true
			},
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			}
		]
	},
	{
		"id": "1097953",
		"username": "jessepollak",
		"social": {
			"verified": null,
			"followers": 1097,
			"following": 61
		},
		"avatar": "https://avatars.githubusercontent.com/u/1097953?v=4",
		"url": "https://github.com/jessepollak",
		"platform": "github",
		"sources": [
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			},
			{
				"id": "jesse.xyz",
				"platform": "ens",
				"verified": true
			}
		]
	},
	{
		"id": "jesse.base.eth",
		"social": null,
		"avatar": null,
		"url": "https://www.base.org/name/jesse.base.eth",
		"platform": "basenames",
		"username": null,
		"sources": [
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			}
		]
	},
	{
		"id": "0x4c14105711eccb2c3ade694fc0227e3a5cc4f237",
		"avatar": null,
		"platform": "lens",
		"username": "jessepollak",
		"url": "https://hey.xyz/u/jessepollak",
		"social": {
			"verified": null,
			"followers": 150,
			"following": 36
		},
		"sources": [
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			},
			{
				"id": "0x4c14105711eccb2c3ade694fc0227e3a5cc4f237",
				"platform": "lens",
				"verified": true
			}
		]
	},
	{
		"id": "353682",
		"avatar": "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/1013b0f6-1bf4-4f4e-15fb-34be06fede00/original",
		"platform": "talent-protocol",
		"url": "https://app.talentprotocol.com/profile/353682",
		"username": null,
		"social": null,
		"sources": [
			{
				"id": "353682",
				"platform": "talent-protocol",
				"verified": true
			}
		]
	},
	{
		"platform": "ens",
		"id": "jesse.xyz",
		"url": "https://app.ens.domains/jesse.xyz",
		"avatar": "https://s.gravatar.com/avatar/905fd6810cd184a461697d811a319272.jpg",
		"username": null,
		"social": null,
		"sources": [
			{
				"id": "jesse.xyz",
				"platform": "ens",
				"verified": true
			}
		]
	},
	// ...
]

Linking Identities

Memory Lets API consumers to write back to the identity graph by creating new users links that enhance the identity graph by providing a user verification flow for verified projects. If you want to get verified and contribute to Memory’s identity graph see the Developers Page

Identity Metadata

Each identity node (e.g., Twitter/X, GitHub, ENS) can include optional metadata provided by Memory. This may include, for example, Twitter follower/following stats for each account. Identity metadata will be available soon—stay tuned for updates.

Next Steps

Start exploring Memory and see what you can build.