About Hashless

The Hashless Platform provides a scalable, reliable interpretation layer for blockchain data — available as an API and Application that allows you to retrieve granular interpretations for any Ethereum transaction at a scale and level of precision unavailable anywhere else.


What we're doing

At Hashless, we've built an automated interpretation layer for blockchain data that provides a category, audit trail and financial analysis (receipt) for on-chain transactions. Today we are opening up access to this technology via an API that allows anyone to make financial sense of any transaction on Ethereum, whether historical or real-time, as well as our foundational API for cataloging contracts.

Our data platform uses automated smart contract (bytecode) analysis and pattern matching technology to semantically categorize all 50+ million smart contracts deployed on Ethereum according to their capabilities and observed usage. We couple this with a new transaction analysis approach. Together these make up the Hashless Contract Catalog and Hashless Transaction Interpreter APIs we're launching today.

By investing in a new technological approach that decodes, analyzes, categorizes and normalizes transaction data, we make accounting-quality, human readable interpretations available for all Ethereum transactions — across any protocol, smart contract or asset and for both current and historical data.

Today's launch represents our first step towards our vision of making blockchain financial data understandable to all. We're excited to see what you think!

If you want to get your hands dirty, inquire about an API key and start exploring. If you're more comfortable with an app-based approach, sign up for the waitlist for our Explorer application, coming at the end of January.


How we got here

Like many, we were excited about the promise of a more open financial system enabled by the blockchain. Yet as we started building, we found that getting understandable on-chain data was time consuming, error prone and a barrier to building applications to deliver on the promise of the blockchain. We spent the last year working with dozens of top financial players in the digital asset space that were facing the same problem.

Across firms tokenizing real-world assets, tax & accounting companies struggling to make sense of millions of transactions, forensics/audit professionals working through a massive backlog, stablecoin issuers trying to monitor what happens after mint, wallet providers trying to protect customers and numerous others the feedback was consistent: a scalable, reliable interpretation layer for blockchain data was missing.

Levels of the Blockchain Data Problem: Data Access, Decoding, Indexing, Interpretation (we are here!)

During our alpha period, the APIs we're launching today have helped our partners reduce manual labor, identify material accounting misstatements, better leverage their internal experts, and remove obstacles to scaling up their business. We're excited to share these APIs with a larger audience.


How we're different

Coming from a web 2 background, we've built companies in both the pre- and post-cloud era and know how much being able to build on top of great infrastructure accelerates product development. Naturally, when we began building in the blockchain space, we looked for the crypto equivalents.

In our experience, the most mature products in crypto data are RPC (node) providers and block explorers. For simple transaction confirmation use cases, or for decoding event logs emitted from a smart contract you built yourself, the combination of a solid RPC provider and great open source libraries like Ethers.js works well.

When we started to look at extracting meaning from on-chain data programmatically, though, we hit a wall.

As we spoke to many data analysts and developers solving problems in blockchain, we found that most had the same experience: getting low-level technical data (think stack traces) was doable, but interpreting and organizing the data at scale was impossible.

In some cases, folks saw value in existing approaches for getting aggregated metrics around protocol activities — things like dashboards for SushiSwap trade volume or Compound loan health — but if they needed to understand an Ethereum account's activities in detail, or analyze more than a handful of top protocols, they were back to laboriously normalizing data by hand — only to have to revisit the work when the next contract upgrade came out. (As an example: we met a number of folks who had working code for analyzing Uniswap trades, but couldn't track Curve activities. And if they did track Curve, often things got hairy when trades routed through a Curve yield-enhanced pool — and so on.)

All of these approaches, in the end, rely on analysts and developers (whether it's an engineer at your company or an anon on GitHub) writing rules to map protocol-specific events and functions to normalized data. As a small team, we clearly weren't going to be able to map the ever-expanding universe of DeFi, NFTs and Web3 by hand. We decided we needed an entirely different approach.

Instead of starting with transactions, we started by indexing, decompiling and applying automated reverse engineering techniques to all 52 million smart contracts, including closed source contracts, live on Ethereum. For every contract we assessed both provenance (what protocol does this contract belong to?) and capabilities (what can this contract be used for?)

We refer to this database of contract interpretations as the Hashless Contract Catalog, and in addition to being foundational for us, it's available in the API we're launching today for others to build on.

Beyond individual contracts, the magic of on-chain protocols is in how they can be composed to build entirely new products. Knowing the capabilities of all the contracts involved in a transaction isn't enough to tell you what that transaction is doing by itself. So we built our second major piece of technology: a pattern-matching engine for assessing the financial behavior of any on-chain transaction.

By applying these technologies together, we've been able to achieve a ~95% interpretation rate for transactions on Ethereum — making not only financial categorizations but also detailed breakdowns of net and gross financial movements with clear, human-readable labels describing the underlying purpose of fund movements, ultimately letting us turn this:

Raw Encoded Transaction
0x5f575529000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022b1c8c1227a0000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000147061726173776170563546656544796e616d69630000000000000000000000000000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000002264118ece03d0000000000000000000000000000000000000000000000000000000000137c3300e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000004db732547630000000000000000000000000000dc838074d95c89a5c2cbf26984fedc9160b6162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d84a94e78ef0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000000000002264118ece03d0000000000000000000000000000000000000000000000000000000000137c3300e1000000000000000000000000000000000000000000000000000000141679330c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000006d6574616d61736b3201000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000d4000000000000000000000000000000000000000000000000000000000627c5fa3af9cc2a0d15e11ecb8282965cca50bee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000009000000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000003a0430bf7cd2633af111ce3204db4b0990857a6f0000000000000000000000000000000000000000000000000000000000001770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f9234cb08edb93c0d4a4d4c70cc3ffd070e78e070000000000000000000000000000000000000000000000000000000000000d0500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000004de5a478c2975ab1ea89e8196811f51a7b7ade33eb110000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f9234cb08edb93c0d4a4d4c70cc3ffd070e78e070000000000000000000000000000000000000000000000000000000000001a0b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000004de5c3d03e4f041fd4cd388c549ee2a29a9e5075882f000000000000000000000000fc2ba6e830a04c25e207b8214b26d8c713f6881f0000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee5700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200b09dea16768f0799065c475be02919503cb2a3500020000000000000000001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000dc1a09f859b2000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000000000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000fc2ba6e830a04c25e207b8214b26d8c713f6881f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000a356867fdcea8e71aeaf87805808803806231fdc000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000003058ef90929cb8180174d74c507176cca6835d730000000000000000000000000000000000000000000000000000000000000000

into this:

w:0x394a74 repaid USDT on Aave

Thu, Dec 22, 7:28pm UTC
Repay Loan
Receipt
borrowerw:0x394a74-1642.286423 Aave stable debt bearing USDT
borrowerw:0x394a74-1642.286423 USDT
lenderAave+1642.286423 USDT
lenderAave+29.590103 Aave interest bearing USDT
Audit Trail
  • w:0x394a74
    • Aave
      • Mint
        Aave interest bearing USDT to Aave
      • Burn
        Aave stable debt bearing USDT from w:0x394a74
      • Move
        USDT from w:0x394a74 to Aave
Actions

Cheers!

Chris Andrew & Robert MacCloy