Changelog 0x1: Our Written Culture; Transaction History and Contract ABI Endpoint Updates

Written Culture and its Importance

To foster transparency and clarity of thought, we at Coherent want to start off on the right foot as a company and establish a culture of writing well. Whether it’s internal communication or making our documentation as approachable as possible for developers, clear writing comes from clear thinking - it requires us to invest more time into shaping our ideas before we share them. Hence, we want to make quality writing a pillar of our company.

As a result, we’ll be writing memos to the public in the form of regularly published blogs, allowing all to see the progress we’ve made and share in the lessons learned. We’ll be sharing updates on our product line and also just write pieces on topics we’re really excited about in Web3. And if you ever have any feedback or just want to chat, feel free to drop us a line on Twitter @coherentapi, @orange_juicetin, or @carlcortright.

Product Updates

Contract ABIs

Though an unexpected product we never foresaw coming, we’re happy to announce that starting today we’ll be offering a contract ABIs endpoint! In addition to returning an ABI, we also provide contextual data such as its standard (ERC20, 721, etc.), the contract’s verification status, its symbol, and more. Docs can be found here under docs.coherent.sh.

The main improvements come from its higher-fidelity offering of “repaired ABIs” for a broader variety of contracts compared to what Etherscan provides. This is done through our internal processes of mending incomplete ones using event fragments - thanks to some help from @Metagame, we were able to work off the existing contributions from Brenner in order to incorporate these manually scraped fragments into our decoder. We’re still midway in terms of ironing out some kinks in our process, but for now the endpoint still has full functionality in returning more reliable, consistent responses:

{
  "address": "0x3619e0299f9c3f5c6502abdabf77d246fd328ea5",
  "name": "Crypto Miner Token 3",
  "symbol": "CMT3",
  "officialName": "CryptoMinerToken3",
  "standard": "ERC20",
  "abi": "[{\"constant\":true,\"inputs\":[{\"name\":\"_customerAddress\",\"type\":\"address\"}]...etc.,etc."
  "verified": true
}

We decided to release this endpoint after our own struggles working with the Etherscan API, a relatable problem for most developers. It wouldn’t reliably provide us ABIs capable of decoding all the data we were working with - for certain contracts that weren’t verified, they would be incomplete or outright inaccurate at times. Other times, multiple ABIs would be returned for a single contract, leaving it up to us to test each one to determine the right one. Not to mention parameter names varying from ABI to ABI, adding to the overall bugginess and inconsistency. Our hope is that this endpoint can offer a clean solution to that for all Web3 developers.

Transaction History

Our whole team has been working extraordinarily hard these past two weeks to also launch a product we’re extremely excited about: readable user transaction history! We’ve talked to many of you already concerning your data needs, and our hope is that this endpoint can address a lot of shortcomings in the current API landscape. Docs here.

We’re currently live-indexing and working on backfilling all our historic data as we speak, and the product is available in production for our alpha testers to play around with more recent transactions closer to the chain-tip.

The protocols available within transaction history as of now include OpenSea (both Wyvern and Seaport Protocol) and Uniswap V2 and V3, all of which compose the top 3 Ethereum DApps (in terms of users) to date. We’ll continue to add many more contracts as we go down the list of most used DApps in the near future.

When you put in a given user’s address, you receive an array of enriched transactions composing a user’s transaction history, a single one of which will look like this:

{
  "timestamp": "2022-08-12T15:31:02Z",
  "txHash": "0x88c685ec618e51eba87a9907ea8b8b5cf50ee99c0d58a03dc1ee960531b0d955",
  "contractName": "UniswapV3",
  "fee": {
    "amount": "0.00000000000027606",
    "currency": "ETH"
  },
  "category": "token_swap",
  "action": "swapped",
  "description": "0xe7a9 swapped 0.002 ETH for 15945 Wrapped BTC on UniswapV3",
  "blockchain": "ethereum",
  "assetsSent": [
    {
      "From": "0xe7a91167c495d881a58b56e780bd6b1f51a3500e",
      "To": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45",
      "amount": "0.002",
      "Type": "ETH",
      "Asset": {
        "name": "ETH",
        "symbol": "ETH",
        "standard": "native ETH"
      }
    }
  ],
  "assetsReceived": [
    {
      "From": "0x391e8501b626c623d39474afca6f9e46c2686649",
      "To": "0xe7a91167c495d881a58b56e780bd6b1f51a3500e",
      "amount": "15945",
      "Type": "Token",
      "Asset": {
        "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
        "name": "Wrapped BTC",
        "symbol": "WBTC",
        "standard": "ERC20"
      }
    }
  ]
}

On that note, fill out our alpha signup form if you’re interested in using it and we’ll get back to you pending capacity. And if you’re already onboarded, we love hearing from our users, so let us know about any bugs you’re experiencing or other features you’d like to see!

Subscribe to Coherent
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.