Hello,
The concept of a matching engine fascinates me. It is the part of an exchange that determines how orders are matched when a user places an order. The speed and quality of a matching engine determine how often people trade on the exchange it powers. If an engine lags, inefficiencies will creep into the market. For instance, traders running bots may be unable to place orders fast enough, or there may not be enough liquidity for large orders.
I like the concept because matching engines process data from the buy and sell side millions of times daily. And in doing so, they generate a portion of the trade volume in revenue for the exchange. Scaling matching engines enables orders from all kinds of traders to come through and settle without hiccups. Think of them as traffic lights for modern-day financial transactions. Platforms on the web can be imagined as matching engines.

The internet is a graph that maps out content and services. In the 1980s, this graph consisted of a handful of universities and defence research personnel, as shown in the visual above from Arpanet. As the number of participants on this graph scaled, we needed mechanisms to recommend and match queries with the right participant.
Search engines like Google are ‘matching engines’ that match a user’s intent with relevant information on this graph. There is tremendous value in becoming a matching engine that recommends the right content, and that value is reflected in Alphabet’s market capitalisation.

You search Google for ‘best cafes near me’, which becomes the equivalent of a market order on an exchange. You are querying for information, much like a seller is putting an intent to sell an asset. Google then looks through its database of information and surfaces cafes relevant to you. To rank the information it surfaces into a list, Google would consider your location, transaction history, reviews from locals and advertisement dollars from sponsors.
Like an exchange, the buy side of this order consists of firms that have paid to be on the list and have earned their spots there.
Given enough labour and computing power resources, large recommendation engines could be developed if the users have the intent. On social networks like X, formerly Twitter, matching engines (for advertisements) have never taken off at scale because the users’ intent is not to make purchases. It is to consume content. Erstwhile twitter optimised to distribute good content that could retain users for longer.
Platforms like TikTok became popular because of how sticky they could make a content feed with the very small amount of information a user passes on to the platform. Google has an incentive to balance how finely they match your query. Too many advertisements, and users would not trust them any more than they trust Craigslist today.
Contextualising content that is specific to you whilst balancing commercial interests is Google’s fine art. In some sense, they have become a matching engine where liquidity consists of human attention and indexed content from the internet.
Humour me for a bit longer. Much of the internet today functions like matching engines. Amazon matches consumers with product inventories. Instagram matches creators with an audience base. X matches users with regrets about going online. Tinder or Bumble matches users with potential partners, experiences or regrets. Surely, there are operational aspects to these businesses. But at their core, they match supply and demand, like a matching engine at an exchange.
Moats for these matching engines come from the proprietary data they own. For instance, Uber has the largest database of drivers in some cities. Airbnb has a closed database of properties: the reviews they receive and historical data of how many properties open up in each city at different seasons. The data is the secret sauce based on which businesses can monetise themselves in myriad ways. It is an asset developed through the scale these businesses have reached and the longevity with which they function.
I will resist the urge to go into large language models (LLMs) and AI for now, but my point is that the closed-off data sets these platforms have is their moat. Every once in a while, aggregators or platforms interact with one another. For instance, you can book an Uber from Google Maps in some regions.
So, interoperability of assets – be they drivers, products or inventories of houses – exists today. But they are owned by the businesses that maintain the inventory and can be shut off at will. The moats of these businesses exist in closed graphs that are privately owned. Quite recently, Reddit was mired in controversy for restricting API access to third-party applications that showed content from the platform.
Open Graphs
Smart contracts enable decentralised matching engines on the open graphs that blockchains are. Unlike data on centralised servers, blockchain data is accessible to anyone. Uniswap is a matching engine for assets to convert from one to another. Aave is a matching engine that holds an asset in exchange for giving another as a loan.
These matching engines work without human intervention or external data because their logic is pretty simple. Aave checks if a loan amount is collateralised for the right amount. Uniswap’s smart contract sends tokens to a pool and withdraws assets based on the AMM formula used.
These engines provide rich public data that providers like Nansen index. At scale, you can take data from matching engines like Aave and Uniswap to provide historical context. Labels on Nansen are assets developed using data from public matching engines. How do they work? You study a user’s behaviour over time to track their historical P/L. Wallets that were early to an NFT and held a token through a bear market or early to new smart contracts are considered ‘smart money’.
Historically, the demand side for such context came from traders who wanted to study other traders’ activities. Knowing a large fund is selling a token or using a smart contract provides a tactical advantage when managing millions of dollars online. So service providers have considered DeFi the core market for building context and data sets. I have written at length about this in The Data Wars.
The incentives to retain and continue using a wallet have been relatively low. For instance, you use the same Uber account for years because your reputation determines the quality and pace of service you receive. A low rating could mean worse drivers for you. On Airbnb, hosts check your past bookings to see if they’d want to open their house to you.
Even in games like GTA 5, being a bad player that goes around killing other players in a server (called griefing) gets you put in a server with other griefers. Your reputation holds value in the digital world, even when pseudonymous.

The incentive structures for blockchain applications have historically skewed towards anonymity for the average user. When spinning a new identity is as easy as clicking a button and there are no incentives to retain a wallet, we end up with many wallet addresses with scattered context. This is the crux of what limits Web3-native apps to grow beyond the crypto market. Applications in the industry face challenges in two unique ways.
Anybody can query a user’s historical behaviour with a product by querying blockchain data. No competitive advantage comes from privately storing information the way Meta or Alphabet does today.
Products generally lack context that goes beyond on-chain data about their users. Tools like ArcX are beginning to capture user information from browsers, but we are restricted in the nature of applications that can be built, as user information is often not captured.
Don’t get me wrong. There are some relatively novel solutions. For instance, Passport by Gitcoin allows a user to tie their real-life identity to a wallet. So, you could hypothetically have an AML-KYC’ed user on a perpetual exchange that uses a smart contract to match orders. Or you can use Worldcoin for a network of ~3 million users who have proved they are humans. In other words, the primitives we need to have a network of users with verified identities exist here and now today.
But you don't have much when you look at the supply side of applications that can cater to such users. Users have no incentive to verify their identity and be onboarding themselves.
To summarise :
Blockchain applications have historically been open graphs of economic interactions.
Smart contracts enable applications to become decentralised matching engines.
Users are not incentivised to add context to their economic activity on-chain.
Applications are restricted in what they can offer users due to the lack of context they have on users. This lack of context translates to an absence of moats among products built with open-source code especially if their communities have rallied around a token.
Keep reading with a 7-day free trial
Subscribe to Decentralised.co to keep reading this post and get 7 days of free access to the full post archives.