> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dune.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contract Submission Guide

> A guide for chains and protocols to submit contracts for decoding on Dune.

## Why Submit Contracts for Decoding?

Decoding creates structured, queryable datasets for your protocol's smart contracts on Dune. Once decoded, your team and the broader community can build dashboards and analytics using human-readable event and function data instead of raw bytecode.

## How to Submit Contracts

### Submit via UI (Recommended)

Use the Dune UI for a guided submission process: [https://dune.com/contracts/new](https://dune.com/contracts/new).

### Batch Submission via API (Advanced)

If you are submitting dozens of contracts, or want to resubmit ABIs from your deploy pipeline, use the [Contract Decoding API](/api-reference/contracts/introduction). `POST /v1/contracts/decode` accepts up to 100 contracts per request and returns a result per item, and `GET /v1/contracts/submissions` lets you track their status.

<Warning>
  API submission bypasses the form's guidance, so make sure all flags are accurate, the ABI is complete, and naming follows Dune standards. Using the UI is preferred for one-off submissions, as it includes checks that reduce errors and debugging time.
</Warning>

The request fields match the form. Refer to [Dune's documentation](./decoding-contracts) for guidance on fields like:

* **`has_multiple_instances`** is flag for for [dynamic contracts](./decoding-contracts#are-there-several-instances-of-this-contract-dynamic-contract)
* **`is_created_by_factory`** is flag for [factory contracts](./decoding-contracts#is-it-created-by-a-factory-contract-factory-contract)

Submitting through the API requires an API key with the `Read/Write` scope; submissions are attributed to the user who created the key. Batches across several blockchains and ABI resubmissions require the team behind the key to be on a paid plan; see the [API overview](/api-reference/contracts/introduction) for details.

## Submission Strategy

* **For Chains:** Encourage top protocols to submit their key contracts.
* **For Protocols:** Collaborate with your developers or data analysts to identify which contracts include the main logic and events.

## Special Instructions by Contract Type

### Proxy Contracts

If using a proxy pattern, submit the **implementation contract's ABI**.
<Note> Dune’s pipeline cannot handle dynamic proxies or complex patterns automatically yet. </Note>

### ERC20, ERC721, ERC1155 Tokens

These contracts typically don’t need submission, as Dune already covers standard approvals and transfers. Submit only if custom events are needed.

### DEX Contracts

Look for below sets of contracts:

* **Factory Contract**: should emit pool creation events.
* **Pair/Pool Contract**: should emit swap events.

If decoding is required for additional contracts like routers or position managers, please submit those as well.

### NFT Marketplace Contracts

Submit the main marketplace contract with key events, such as:

* `ERC721BuyOrderFilled`
* `ERC721SellOrderFilled`
* `ERC1155BuyOrderFilled`
* `ERC1155SellOrderFilled`

### Unverified Contracts

If the contract isn’t verified on the block explorer, contact the protocol developers to obtain the ABI.
