Skip to content
Merged
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ Releases prior to 7.0 has been removed from this file to declutter search result
### Added

- cli: Rewritten interactive mode for `new` command.
- evm.blockvision: Added `evm.blockvision` datasource to fetch ABIs from Blockvision API.
- evm.sourcify: Added `evm.sourcify` datasource to fetch ABIs from Sourcify API.

### Fixed

- coinbase: Fixed crash when using coinbase datasource.
- evm.node: Fixed crash when block range goes out of bounds.

## [8.2.0] - 2025-02-10

Expand Down
22 changes: 12 additions & 10 deletions docs/1.getting-started/7.datasources.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ Index datasources, ones that can be attached to a specific index, are prefixed w
| [evm.subsquid](../3.datasources/1.evm_subsquid.md) | ⟠ EVM-compatible | Subsquid Network API |
| [evm.node](../3.datasources/2.evm_node.md) | ⟠ EVM-compatible | Ethereum node |
| [evm.etherscan](../3.datasources/3.evm_etherscan.md) | ⟠ EVM-compatible | Provides ABIs for EVM contracts |
| [starknet.subsquid](../3.datasources/4.starknet_subsquid.md) | 🐺 Starknet | Subsquid Network API |
| [starknet.node](../3.datasources/5.starknet_node.md) | 🐺 Starknet | Starknet node |
| [substrate.node](../3.datasources/6.substrate_node.md) | 🔮 Substrate | Substrate node |
| [substrate.subscan](../3.datasources/7.substrate_subscan.md) | 🔮 Substrate | Provides pallet metadata for Substrate networks |
| [substrate.subsquid](../3.datasources/8.substrate_subsquid.md) | 🔮 Substrate | Subsquid Network API |
| [tezos.tzkt](../3.datasources/9.tezos_tzkt.md) | ꜩ Tezos | TzKT API |
| [tzip_metadata](../3.datasources/10.tzip_metadata.md) | ꜩ Tezos | TZIP-16 metadata |
| [coinbase](../3.datasources/11.coinbase.md) | any | Coinbase price feed |
| [ipfs](../3.datasources/12.ipfs.md) | any | IPFS gateway |
| [http](../3.datasources/13.http.md) | any | Generic HTTP API |
| [evm.blockvision](../3.datasources/4.evm_blockvision.md) | ⟠ EVM-compatible | Provides ABIs for EVM contracts |
| [evm.sourcify](../3.datasources/5.evm_sourcify.md) | ⟠ EVM-compatible | Provides ABIs for EVM contracts |
| [starknet.subsquid](../3.datasources/6.starknet_subsquid.md) | 🐺 Starknet | Subsquid Network API |
| [starknet.node](../3.datasources/7.starknet_node.md) | 🐺 Starknet | Starknet node |
| [substrate.node](../3.datasources/8.substrate_node.md) | 🔮 Substrate | Substrate node |
| [substrate.subscan](../3.datasources/9.substrate_subscan.md) | 🔮 Substrate | Provides pallet metadata for Substrate networks |
| [substrate.subsquid](../3.datasources/10.substrate_subsquid.md) | 🔮 Substrate | Subsquid Network API |
| [tezos.tzkt](../3.datasources/11.tezos_tzkt.md) | ꜩ Tezos | TzKT API |
| [tzip_metadata](../3.datasources/12.tzip_metadata.md) | ꜩ Tezos | TZIP-16 metadata |
| [coinbase](../3.datasources/13.coinbase.md) | any | Coinbase price feed |
| [ipfs](../3.datasources/14.ipfs.md) | any | IPFS gateway |
| [http](../3.datasources/15.http.md) | any | Generic HTTP API |

## Connection settings

Expand Down
10 changes: 5 additions & 5 deletions docs/10.supported-networks/31.mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ description: "Mode network support"

Explorer: [Blockscout](https://explorer.mode.network/)

| datasource | status | URLs |
| -----------------:|:------------- | ------------------------------ |
| **evm.subsquid** | 🤔 not tested | `https://v2.archive.subsquid.io/network/mode-mainnet` |
| **evm.etherscan** | 🤔 not tested | |
| **evm.node** | 🤔 not tested | `https://mode.drpc.org` <br> `wss://mode.drpc.org` |
| datasource | status | URLs |
| -----------------:|:------------- | ----------------------------------------------------- |
| **evm.subsquid** | 🤔 not tested | `https://v2.archive.subsquid.io/network/mode-mainnet` |
| **evm.etherscan** | 🤔 not tested | |
| **evm.node** | 🤔 not tested | `https://mode.drpc.org` <br> `wss://mode.drpc.org` |
23 changes: 23 additions & 0 deletions docs/10.supported-networks/32.monad.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: "Monad"
description: "Monad network support"
---

<!-- markdownlint-disable single-h1 heading-increment no-inline-html -->

# Monad

{{ #include 10.supported-networks/_intro.md }}

## Monad Testnet

Chain ID: `10143`

Explorer: [Blockvision](https://testnet.monadexplorer.com/)

| datasource | status | URLs |
| -------------------:|:--------- | ------------------------------------------------------------------------- |
| **evm.subsquid** | 🔴 no API | N/A |
| **evm.sourcify** | 🔴 500 | `https://sourcify-api-monad.blockvision.org` |
| **evm.blockvision** | 🟢 works | `https://monad-api.blockvision.org/testnet/api` |
| **evm.node** | 🟢 works | `https://testnet-rpc2.monad.xyz/52227f026fa8fac9e2014c58fbf5643369b3bfc6` |
2 changes: 1 addition & 1 deletion docs/2.indexes/_starknet.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- markdownlint-disable first-line-h1 -->
## Datasources

DipDup indexes for Starknet use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Starknet nodes are not required for DipDup to operate, but in future updates, it will be possible to use them to get the latest data (not yet in Subsquid Network) and realtime updates. See [starknet.subsquid](../3.datasources/4.starknet_subsquid.md) page for more info on how to configure the datasource.
DipDup indexes for Starknet use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Starknet nodes are not required for DipDup to operate, but in future updates, it will be possible to use them to get the latest data (not yet in Subsquid Network) and realtime updates. See [starknet.subsquid](../3.datasources/6.starknet_subsquid.md) page for more info on how to configure the datasource.
2 changes: 1 addition & 1 deletion docs/2.indexes/_substrate.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- markdownlint-disable first-line-h1 -->
## Datasources

DipDup indexes for Substrate networks use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Substrate nodes are not required for DipDup to operate, but they can be used to get the latest data (not yet in Subsquid Network) and realtime updates. See [substrate.subsquid](../3.datasources/8.substrate_subsquid.md) and [substrate.node](../3.datasources/6.substrate_node.md) pages for more info on how to configure both datasources.
DipDup indexes for Substrate networks use [Subsquid Network](https://docs.subsquid.io/subsquid-network/overview/) as a main source of historical data. Substrate nodes are not required for DipDup to operate, but they can be used to get the latest data (not yet in Subsquid Network) and realtime updates. See [substrate.subsquid](../3.datasources/10.substrate_subsquid.md) and [substrate.node](../3.datasources/8.substrate_node.md) pages for more info on how to configure both datasources.

For testing purposes, you can use EVM node as a single datasource, but indexing will be significantly slower. For production, it's recommended to use Subsquid Network as the main datasource and EVM node(s) as a secondary one. If there are multiple `substrate.node` datasources attached to index, DipDup will use random one for each request.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/3.datasources/3.evm_etherscan.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ datasources:
api_key: ${ETHERSCAN_API_KEY:-''}
```

During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm.subsquid` index definitions:
During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions:

```yaml [dipdup.yaml]
indexes:
Expand Down
31 changes: 31 additions & 0 deletions docs/3.datasources/4.evm_blockvision.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "Blockvision"
description: "Blockvision is multi-chain Node, Token, NFT, and DeFi API provider and data retrieval portal for developers. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed."
network: "ethereum"
---

# Blockvision

{{ #include 3.datasources/_evm_banner.md }}

[Blockvision](https://docs.blockvision.org/reference/welcome-to-blockvision) is multi-chain Node, Token, NFT, and DeFi API provider and data retrieval portal for developers. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed.

To use this datasource, add the following section in config:

```yaml [dipdup.yaml]
datasources:
blockvision:
kind: evm.blockvision
url: https://monad-api.blockvision.org/testnet/api
```

During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions:

```yaml [dipdup.yaml]
indexes:
evm_events:
kind: evm.events
datasources:
- blockvision
...
```
31 changes: 31 additions & 0 deletions docs/3.datasources/5.evm_sourcify.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "Sourcify"
description: "Sourcify is a source-code verification service for Ethereum smart contracts supporting Solidity and Vyper. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed."
network: "ethereum"
---

# Sourcify

{{ #include 3.datasources/_evm_banner.md }}

[Sourcify](https://docs.sourcify.dev/docs/intro/index.html) is a source-code verification service for Ethereum smart contracts supporting Solidity and Vyper. It provides a public API to fetch ABIs of verified contracts. DipDup can use its API to fetch ABIs for contracts being indexed.

To use this datasource, add the following section in config:

```yaml [dipdup.yaml]
datasources:
sourcify:
kind: evm.sourcify
chain_id: 1 # Ethereum mainnet
```

During initialization, DipDup will use this datasource to fetch contract ABIs. If your config contains definitions for multiple networks, you can assign the datasource explicitly in `evm` index definitions:

```yaml [dipdup.yaml]
indexes:
evm_events:
kind: evm.events
datasources:
- sourcify
...
```
2 changes: 1 addition & 1 deletion docs/7.references/2.config.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ description: "Config file reference"
<dd class="field-odd"><ul class="simple">
<li><p><strong>spec_version</strong> (<em>ToStr</em>) – Version of config specification, currently always <cite>3.0</cite></p></li>
<li><p><strong>package</strong> (<em>str</em>) – Name of indexer’s Python package, existing or not</p></li>
<li><p><strong>datasources</strong> (<em>dict</em><em>[</em><em>str</em><em>, </em><a class="reference internal" href="#dipdupconfigcoinbasecoinbasedatasourceconfig" title="dipdup.config.coinbase.CoinbaseDatasourceConfig" target="_self"><em>CoinbaseDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_etherscanevmetherscandatasourceconfig" title="dipdup.config.evm_etherscan.EvmEtherscanDatasourceConfig" target="_self"><em>EvmEtherscanDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfighttphttpdatasourceconfig" title="dipdup.config.http.HttpDatasourceConfig" target="_self"><em>HttpDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigipfsipfsdatasourceconfig" title="dipdup.config.ipfs.IpfsDatasourceConfig" target="_self"><em>IpfsDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_subsquidevmsubsquiddatasourceconfig" title="dipdup.config.evm_subsquid.EvmSubsquidDatasourceConfig" target="_self"><em>EvmSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_nodeevmnodedatasourceconfig" title="dipdup.config.evm_node.EvmNodeDatasourceConfig" target="_self"><em>EvmNodeDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigtzip_metadatatzipmetadatadatasourceconfig" title="dipdup.config.tzip_metadata.TzipMetadataDatasourceConfig" target="_self"><em>TzipMetadataDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigtezos_tzkttezostzktdatasourceconfig" title="dipdup.config.tezos_tzkt.TezosTzktDatasourceConfig" target="_self"><em>TezosTzktDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigstarknet_subsquidstarknetsubsquiddatasourceconfig" title="dipdup.config.starknet_subsquid.StarknetSubsquidDatasourceConfig" target="_self"><em>StarknetSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigstarknet_nodestarknetnodedatasourceconfig" title="dipdup.config.starknet_node.StarknetNodeDatasourceConfig" target="_self"><em>StarknetNodeDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigsubstrate_subsquidsubstratesubsquiddatasourceconfig" title="dipdup.config.substrate_subsquid.SubstrateSubsquidDatasourceConfig" target="_self"><em>SubstrateSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigsubstrate_subscansubstratesubscandatasourceconfig" title="dipdup.config.substrate_subscan.SubstrateSubscanDatasourceConfig" target="_self"><em>SubstrateSubscanDatasourceConfig</em></a><em> | </em><em>SubstrateNodeDatasourceConfig</em><em>]</em>) – Mapping of datasource aliases and datasource configs</p></li>
<li><p><strong>datasources</strong> (<em>dict</em><em>[</em><em>str</em><em>, </em><a class="reference internal" href="#dipdupconfigcoinbasecoinbasedatasourceconfig" title="dipdup.config.coinbase.CoinbaseDatasourceConfig" target="_self"><em>CoinbaseDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_etherscanevmetherscandatasourceconfig" title="dipdup.config.evm_etherscan.EvmEtherscanDatasourceConfig" target="_self"><em>EvmEtherscanDatasourceConfig</em></a><em> | </em><em>EvmSourcifyDatasourceConfig</em><em> | </em><em>EvmBlockvisionDatasourceConfig</em><em> | </em><a class="reference internal" href="#dipdupconfighttphttpdatasourceconfig" title="dipdup.config.http.HttpDatasourceConfig" target="_self"><em>HttpDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigipfsipfsdatasourceconfig" title="dipdup.config.ipfs.IpfsDatasourceConfig" target="_self"><em>IpfsDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_subsquidevmsubsquiddatasourceconfig" title="dipdup.config.evm_subsquid.EvmSubsquidDatasourceConfig" target="_self"><em>EvmSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigevm_nodeevmnodedatasourceconfig" title="dipdup.config.evm_node.EvmNodeDatasourceConfig" target="_self"><em>EvmNodeDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigtzip_metadatatzipmetadatadatasourceconfig" title="dipdup.config.tzip_metadata.TzipMetadataDatasourceConfig" target="_self"><em>TzipMetadataDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigtezos_tzkttezostzktdatasourceconfig" title="dipdup.config.tezos_tzkt.TezosTzktDatasourceConfig" target="_self"><em>TezosTzktDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigstarknet_subsquidstarknetsubsquiddatasourceconfig" title="dipdup.config.starknet_subsquid.StarknetSubsquidDatasourceConfig" target="_self"><em>StarknetSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigstarknet_nodestarknetnodedatasourceconfig" title="dipdup.config.starknet_node.StarknetNodeDatasourceConfig" target="_self"><em>StarknetNodeDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigsubstrate_subsquidsubstratesubsquiddatasourceconfig" title="dipdup.config.substrate_subsquid.SubstrateSubsquidDatasourceConfig" target="_self"><em>SubstrateSubsquidDatasourceConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigsubstrate_subscansubstratesubscandatasourceconfig" title="dipdup.config.substrate_subscan.SubstrateSubscanDatasourceConfig" target="_self"><em>SubstrateSubscanDatasourceConfig</em></a><em> | </em><em>SubstrateNodeDatasourceConfig</em><em>]</em>) – Mapping of datasource aliases and datasource configs</p></li>
<li><p><strong>database</strong> (<a class="reference internal" href="#dipdupconfigsqlitedatabaseconfig" title="dipdup.config.SqliteDatabaseConfig" target="_self"><em>SqliteDatabaseConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigpostgresdatabaseconfig" title="dipdup.config.PostgresDatabaseConfig" target="_self"><em>PostgresDatabaseConfig</em></a>) – Database config</p></li>
<li><p><strong>runtimes</strong> (<em>dict</em><em>[</em><em>str</em><em>, </em><a class="reference internal" href="#dipdupconfigsubstratesubstrateruntimeconfig" title="dipdup.config.substrate.SubstrateRuntimeConfig" target="_self"><em>SubstrateRuntimeConfig</em></a><em>]</em>) – Mapping of runtime aliases and runtime configs</p></li>
<li><p><strong>contracts</strong> (<em>dict</em><em>[</em><em>str</em><em>, </em><a class="reference internal" href="#dipdupconfigevmevmcontractconfig" title="dipdup.config.evm.EvmContractConfig" target="_self"><em>EvmContractConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigtezostezoscontractconfig" title="dipdup.config.tezos.TezosContractConfig" target="_self"><em>TezosContractConfig</em></a><em> | </em><a class="reference internal" href="#dipdupconfigstarknetstarknetcontractconfig" title="dipdup.config.starknet.StarknetContractConfig" target="_self"><em>StarknetContractConfig</em></a><em>]</em>) – Mapping of contract aliases and contract configs</p></li>
Expand Down
Loading
Loading