> For the complete documentation index, see [llms.txt](https://docs.checkpoint.snapshot.box/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.checkpoint.snapshot.box/guides/indexing-ethereum-contracts.md).

# Indexing Ethereum contracts

Checkpoint initially supported indexing Starknet contracts only, but it can also index Ethereum contracts now.

{% hint style="info" %}
Checkpoint can work with any network and chain as long as there is [a provider](https://github.com/checkpoint-labs/checkpoint/tree/master/src/providers) implemented for it. Currently there is official support for Starknet and Ethereum (or any other EVM network), but external providers are supported as well.
{% endhint %}

Usage with Ethereum is very similar to usage with Starknet, differences are:

* Use full signature for event name in config (`ProposalUpdated(uint256,(address,bytes),string)` instead of `ProposalUpdated`)
* Your writers should be using `evm.Writer` instead of `starknet.Writer`.
* You should create indexer using `new evm.EvmIndexer` instead of `new starknet.StarknetIndexer`.

```typescript
import Checkpoint, { evm } from '@snapshot-labs/checkpoint';

const handleProxyDeployed: evm.Writer = async ({ blockNumber, event }) => {};
const writers = { handleProxyDeployed };

const ethIndexer = new evm.EvmIndexer(writers);

const checkpoint = new Checkpoint(...);
checkpoint.addIndexer('eth', config, ethIndexer);
checkpoint.start();
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.checkpoint.snapshot.box/guides/indexing-ethereum-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
