Documentation Index
Fetch the complete documentation index at: https://dune-pro-1110-add-delete-endpoints-python-js-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Decoding Contracts
Dune’s extensive catalog of decoded smart contracts are driven by our Wizards. Our decoding process empowers our community to submit the data and build the tables that they’d like to query on Dune! But what does decoding mean? Blockchain transaction data starts as bytecode, a low level programming language that can be read by machines. Using the ABI (Application Binary Interface) that is specific to each contract, we translate that bytecode into query-able data tables.Explore decoded data
A. The Lifecycle of Decoding
Step 1: Submission
Our decoding process begins with our contract submission page.
To successfully submit a contract, you will need four pieces of information:
- Blockchain: The name of the origin blockchain of the contract
- Contract Address: The address associated with contract
- Project Name: The name of the project that the contract originates from (ex. Tether)
- Contract Name: The name of the smart contract as given by the Project (ex. USDT)
- ABI: Unique to each smart contract. Further details can be found here. Note that for contracts that are verified by a chain’s explorer we will attempt to auto-fetch the ABI. Otherwise the ABI will need to be entered manually.
When do you need Advanced Options?
Are there several instances of this contract? Contract “instances” are essentially contracts that are on the same chain and have the same bytecode (and therefore the same ABI). If you toggle instances to “Yes”, Dune can decode all instances without multiple submissions. Is it created by a factory contract? A factory contract is essentially a smart contract that creates other smart contracts. If there are multiple contract instances, there is a chance that it is due to a factory contract. If you toggle this question to “yes”, Dune can decode all contracts created by the same factory that use the same ABI, and store them in the same table (ex., pools from Uniswap V3).Other Special Contracts
Other special smart contracts can be decoded as well, following these conventions: Proxy contract: Submit using the proxy address but the ABI of the implementation Diamond proxy contracts: Submit all the facets using just the same name for the project and contract and upload all the relevant ABIs. This can be done with one ABI representing all facets or separate ABIs for each facet.
There are some circumstances under which a contract can be resubmitted, like if the contract needs to be renamed. In that case, you can click “Proceed to Resubmit” and follow the steps to submit the contract as normal with one caveat: at the end of the submission process, you will be asked to explain why you want to resubmit the contract. Give as much detail as possible to avoid the resubmission being rejected!Step 2: Decoding
Once the contract has been approved for decoding, you will receive a notification in your email. While the table itself may be visible after approval, it may be empty. No reason to worry! Note that it takes around 6 hours from the time the contract has been approved to be fully decoded and incorporated into the Dune database. At any point you can check the status of your submitted contract under “Contracts” in your settings.Step 3: Finding Your Decoded Contract
One quick tip to find and begin querying your decoded table is to use Dune’s Explorer. When beginning a new query, the Explorer is located to the left side of the Query Editor. From there, follow simple steps:- Drop the contract address of your decoded contract in the search bar
- Pull up the specific function or event you are looking for
- use the >> button to immediately populate that table in your Query Editor.
Then it’s all ready for you to query. Let the data flow!
B. Frequently Asked Questions
On which chains does this work?
On which chains does this work?
How do I figure out if my contract has been decoded?
How do I figure out if my contract has been decoded?
- Pending
- Approved/Rejected*
Built by our decoding team, this dashboard gives you information on the status of any submitted contract. Input the contract address in the box at the top of the dashboard and if the contract has been decoded, the contract information will populate the box along with where it is located in the Dune database.I see data on Dune but it doesn't match or is missing what I expected to see
I see data on Dune but it doesn't match or is missing what I expected to see
How do I submit contract information manually?
How do I submit contract information manually?
How do I submit a proxy contract?
How do I submit a proxy contract?
DelegateCall function.If we did monitor the implementation contract’s address directly, we would miss out on any event logs in its logic since these are actually fired by the caller (the Proxy in this case) when calling a function through DelegateCall.
When you submit the Proxy contract’s address, we’ll attempt to fetch the proxy’s contract name and the implementation address it’s pointing towards to source the Implementation contract’s ABI.If we can’t find the Implementation contract’s ABI, you’ll need to find it using the relevant chain’s blockchain explorer and input it manually.How do I submit Diamond Proxy contracts?
How do I submit Diamond Proxy contracts?
My submission got rejected, why?
My submission got rejected, why?
Viewing results:
If you see results after running the query, that means the contract is already decoded! You’ll be able to find the decoded tables under ‘Decoded Projects’ in the data explorer.In the interest of data quality, we reject duplicative, incorrect or low quality submissions. To avoid rejection, be sure to submit accurate contract information! Submissions can be rejected for a number of reasons, including not following the naming conventions, not providing clear data at submission, etc. The particular reason for a contract submission being rejected can be found in account settings under “Contracts” by hovering the mouse over the “Rejected” status.Why am I missing historical data for my contract?
Why am I missing historical data for my contract?
I'm waiting for my data to fully decode. What can I do in the meantime?
I'm waiting for my data to fully decode. What can I do in the meantime?

