Schema URL

Type: object

DipDup project configuration file

Properties

spec_version string | number

Version of config specification, currently always 2.0

package string

Name of indexer's Python package, existing or not

datasources Record<string, any>

Mapping of datasource aliases and datasource configs

database

Database config

contracts Record<string, any>

Mapping of contract aliases and contract configs

indexes Record<string, any>

Mapping of index aliases and index configs

templates Record<string, any>

Mapping of template aliases and index templates

jobs Record<string, any>

Mapping of job aliases and job configs

hooks Record<string, any>

Mapping of hook aliases and hook configs

hasura null

Hasura integration config

Default: null
sentry null

Sentry integration config

Default: null
prometheus null

Prometheus integration config

Default: null
api null

Management API config

Default: null
advanced

Advanced config

All of: AdvancedConfig object
custom Record<string, any>

User-defined configuration to use in callbacks

logging object | string | integer

Modify logging verbosity

Default: "INFO"

Definitions

HttpConfig object

Advanced configuration of HTTP client

retry_count integer | null

Number of retries after request failed before giving up

Default: null
retry_sleep number | null

Sleep time between retries

Default: null
retry_multiplier number | null

Multiplier for sleep time between retries

Default: null
ratelimit_rate integer | null

Number of requests per period ("drops" in leaky bucket)

Default: null
ratelimit_period integer | null

Time period for rate limiting in seconds

Default: null
ratelimit_sleep number | null

Sleep time between requests when rate limit is reached

Default: null
connection_limit integer | null

Number of simultaneous connections

Default: null
connection_timeout integer | null

Connection timeout in seconds

Default: null
request_timeout integer | null

Request timeout in seconds

Default: null
batch_size integer | null

Number of items fetched in a single paginated request (when applicable)

Default: null
polling_interval number | null

Interval between polling requests in seconds (when applicable)

Default: null
replay_path string | null

Use cached HTTP responses instead of making real requests (dev only)

Default: null
alias string | null

Alias for this HTTP client (dev only)

Default: null
CoinbaseDatasourceConfig object

Coinbase datasource config

kind enum required

always 'coinbase'

Values: "coinbase"
api_key string | null

API key

Default: null
secret_key string | null

API secret key

Default: null
passphrase string | null

API passphrase

Default: null
http null

HTTP client configuration

Default: null
EtherscanDatasourceConfig object

Etherscan datasource config

kind enum required

always 'abi.etherscan'

Values: "abi.etherscan"
url string

API URL

Default: "https://api.etherscan.io/api"
api_key string | null

API key

Default: null
http null

HTTP client configuration

Default: null
HttpDatasourceConfig object

Generic HTTP datasource config

kind enum required

always 'http'

Values: "http"
url string required

URL to fetch data from

http null

HTTP client configuration

Default: null
IpfsDatasourceConfig object

IPFS datasource config

kind enum required

always 'ipfs'

Values: "ipfs"
url string

IPFS node URL, e.g. https://ipfs.io/ipfs/

Default: "https://ipfs.io/ipfs"
http null

HTTP client configuration

Default: null
EvmNodeDatasourceConfig object

Subsquid datasource config

kind enum required

Always 'evm.node'

Values: "evm.node"
url string required

Ethereum node URL

ws_url string | null

Ethereum node WebSocket URL

Default: null
http null

HTTP client configuration

Default: null
rollback_depth integer

A number of blocks to store in database for rollback

Default: 32
SubsquidDatasourceConfig object

Subsquid datasource config

kind enum required

always 'evm.subsquid'

Values: "evm.subsquid"
url string required

URL of Subsquid Network API

node string | string[] | array | null

One or more evm.node datasource(s) for the same network

Default: null
http null

HTTP client configuration

Default: null
TzipMetadataNetwork enum
TzipMetadataDatasourceConfig object

DipDup Metadata datasource config

kind enum required

always 'tzip_metadata'

Values: "tzip_metadata"
network required

Network name, e.g. mainnet, ghostnet, etc.

All of: TzipMetadataNetwork enum
url string

GraphQL API URL, e.g. https://metadata.dipdup.net

Default: "https://metadata.dipdup.net"
http null

HTTP client configuration

Default: null
TzktDatasourceConfig object

TzKT datasource config

kind enum required

always 'tezos.tzkt'

Values: "tezos.tzkt"
url string

Base API URL, e.g. https://api.tzkt.io/

Default: "https://api.tzkt.io"
http null

HTTP client configuration

Default: null
buffer_size integer

Number of levels to keep in FIFO buffer before processing

Default: 0
merge_subscriptions boolean

Whether to merge realtime subscriptions

Default: false
rollback_depth integer

Number of blocks to keep in the database to handle reorgs

Default: 2
SqliteDatabaseConfig object

SQLite connection config

kind enum required

always 'sqlite'

Values: "sqlite"
path string

Path to .sqlite3 file, leave default for in-memory database (:memory:)

Default: ":memory:"
immune_tables string[]

List of tables to preserve during reindexing

uniqueItems=true
PostgresDatabaseConfig object

Postgres database connection config

kind enum required

always 'postgres'

Values: "postgres"
host string required

Host

user string

User

Default: "postgres"
database string

Database name

Default: "postgres"
port integer

Port

Default: 5432
schema_name string

Schema name

Default: "public"
password string

Password

Default: ""
immune_tables string[]

List of tables to preserve during reindexing

uniqueItems=true
connection_timeout integer

Connection timeout

Default: 60
EvmContractConfig object

EVM contract config

kind enum required

Always evm

Values: "evm"
address integer | string | null

Contract address

Default: null
abi integer | string | null

Contract ABI

Default: null
typename string | null

Alias for the contract script

Default: null
TezosContractConfig object

Tezos contract config.

kind enum required

Always tezos

Values: "tezos"
address string | null

Contract address

Default: null
code_hash integer | string | null

Contract code hash or address to fetch it from

Default: null
typename string | null

Alias for the contract script

Default: null
TzktBigMapsHandlerConfig object

Big map handler config

callback string required

Callback name

contract string required

Contract to fetch big map from

path string required

Path to big map (alphanumeric string with dots)

SkipHistory enum
TzktBigMapsIndexConfig object

Big map index config

kind enum required

always 'tezos.tzkt.big_maps'

Values: "tezos.tzkt.big_maps"
datasource string required

Index datasource to fetch big maps with

handlers array required

Mapping of big map diff handlers

skip_history

Fetch only current big map keys ignoring historical changes

Default: "never"
All of: SkipHistory enum
first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
TzktEventsHandlerConfig object

Event handler config

callback string required

Callback name

contract string required

Contract which emits event

tag string required

Event tag

TzktEventsUnknownEventHandlerConfig object

Unknown event handler config

callback string required

Callback name

contract string required

Contract which emits event

TzktEventsIndexConfig object

Event index config

kind enum required

always 'tezos.tzkt.events'

Values: "tezos.tzkt.events"
datasource string required

Datasource config

handlers array required

Event handlers

first_level integer

First block level to index

Default: 0
last_level integer

Last block level to index

Default: 0
TzktHeadIndexConfig object

Head block index config

kind enum required

always 'tezos.tzkt.head'

Values: "tezos.tzkt.head"
datasource string required

Index datasource to receive head blocks

callback string required

Callback name

OperationsHandlerTransactionPatternConfig object

Transaction handler pattern config

type enum

always 'transaction'

Default: "transaction"
Values: "transaction"
source string | null

Match operations by source contract alias

Default: null
destination string | null

Match operations by destination contract alias

Default: null
entrypoint string | null

Match operations by contract entrypoint

Default: null
optional boolean

Whether can operation be missing in operation group

Default: false
alias string | null

Alias for operation (helps to avoid duplicates)

Default: null
OperationsHandlerOriginationPatternConfig object

Origination handler pattern config

type enum

always 'origination'

Default: "origination"
Values: "origination"
source string | null

Match operations by source contract alias

Default: null
originated_contract string | null

Match origination of exact contract

Default: null
optional boolean

Whether can operation be missing in operation group

Default: false
strict boolean

Match operations by storage only or by the whole code

Default: false
alias string | null

Alias for operation (helps to avoid duplicates)

Default: null
OperationsHandlerSmartRollupExecutePatternConfig object

Operation handler pattern config

type enum

always 'sr_execute'

Default: "sr_execute"
Values: "sr_execute"
source string | null

Match operations by source contract alias

Default: null
destination string | null

Match operations by destination contract alias

Default: null
optional boolean

Whether can operation be missing in operation group

Default: false
alias string | null

Alias for operation (helps to avoid duplicates)

Default: null
TzktOperationsHandlerConfig object

Operation handler config

callback string required

Callback name

pattern array required

Filters to match operation groups

TzktOperationType enum
TzktOperationsIndexConfig object

Operation index config

kind enum required

always 'tezos.tzkt.operations'

Values: "tezos.tzkt.operations"
datasource string required

Alias of index datasource in datasources section

handlers array required

List of indexer handlers

contracts string[] required

Aliases of contracts being indexed in contracts section

types array

Types of transaction to fetch

Default:
[
  "transaction"
]
first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
TzktOperationsUnfilteredIndexConfig object

Operation index config

kind enum required

always 'tezos.tzkt.operations_unfiltered'

Values: "tezos.tzkt.operations_unfiltered"
datasource string required

Alias of index datasource in datasources section

callback string required

Callback name

types array

Types of transaction to fetch

Default:
[
  "transaction"
]
first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
TzktTokenTransfersHandlerConfig object

Token transfer handler config

callback string required

Callback name

contract string | null

Filter by contract

Default: null
token_id integer | null

Filter by token ID

Default: null
to string | null

Filter by recipient

Default: null
from string | null

Filter by sender

Default: null
TzktTokenTransfersIndexConfig object

Token transfer index config

kind enum required

always 'tezos.tzkt.token_transfers'

Values: "tezos.tzkt.token_transfers"
datasource string required

Index datasource to use

handlers array

Mapping of token transfer handlers

first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
TzktTokenBalancesHandlerConfig object

Token balance handler config

callback string required

Callback name

contract string | null

Filter by contract

Default: null
token_id integer | null

Filter by token ID

Default: null
TzktTokenBalancesIndexConfig object

Token balance index config

kind enum required

always 'tezos.tzkt.token_balances'

Values: "tezos.tzkt.token_balances"
datasource string required

Index datasource to use

handlers array

Mapping of token transfer handlers

first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
SubsquidEventsHandlerConfig object

Subsquid event handler

callback string required

Callback name

contract string required

EVM contract

name string required

Event name

AbiDatasourceConfig object

Provider of EVM contract ABIs. Datasource kind starts with 'abi.'

SubsquidEventsIndexConfig object

Subsquid datasource config

kind enum required

Always 'evm.subsquid.events'

Values: "evm.subsquid.events"
datasource string required

Subsquid datasource

handlers array required

Event handlers

abi array | null

One or more evm.abi datasource(s) for the same network

Default: null
node_only boolean

Whether to use only node datasource

Default: false
first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing and disable this index

Default: 0
SubsquidTransactionsHandlerConfig object

Subsquid transaction handler

callback string required

Callback name

to string | null

Transaction receiver

Default: null
method string | null

Method name

Default: null
from string | null

Transaction sender

Default: null
SubsquidTransactionsIndexConfig object

Index that uses Subsquid Network as a datasource for transactions

kind enum required

always 'evm.subsquid.transactions'

Values: "evm.subsquid.transactions"
datasource string required

Subsquid datasource config

handlers array required

Transaction handlers

abi array | null

One or many ABI datasource(s)

Default: null
node_only boolean

Whether to use only node datasource

Default: false
first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
IndexTemplateConfig object

Index template config

template string required

Template alias in templates section

values Record<string, string> required

Values to be substituted in template (<key> -> value)

first_level integer

Level to start indexing from

Default: 0
last_level integer

Level to stop indexing at

Default: 0
HookConfig object

Hook config

callback string required

Callback name

args Record<string, string>

Mapping of argument names and annotations (checked lazily when possible)

atomic boolean

Wrap hook in a single database transaction

Default: false
JobConfig object

Job schedule config

hook string required

Name of hook to run

args Record<string, any> required

Arguments to pass to the hook

crontab string | null

Schedule with crontab syntax (* * * * *)

Default: null
interval integer | null

Schedule with interval in seconds

Default: null
daemon boolean

Run hook as a daemon (never stops)

Default: false
HasuraConfig object

Config for the Hasura integration.

url string required

URL of the Hasura instance.

admin_secret string | null

Admin secret of the Hasura instance.

Default: null
create_source boolean

Whether source should be added to Hasura if missing.

Default: false
source string

Hasura source for DipDup to configure, others will be left untouched.

Default: "default"
select_limit integer

Row limit for unauthenticated queries.

Default: 1000
allow_aggregations boolean

Whether to allow aggregations in unauthenticated queries.

Default: true
allow_inconsistent_metadata boolean

Whether to ignore errors when applying Hasura metadata.

Default: false
camel_case boolean

Whether to use camelCase instead of default pascal_case for the field names.

Default: false
rest boolean

Enable REST API both for autogenerated and custom queries.

Default: true
http null

HTTP connection tunables

Default: null
SentryConfig object

Config for Sentry integration.

dsn string required

DSN of the Sentry instance

environment string | null

Environment; if not set, guessed from docker/ci/gha/local.

Default: null
server_name string | null

Server name; defaults to obfuscated hostname.

Default: null
release string | null

Release version; defaults to DipDup package version.

Default: null
user_id string | null

User ID; defaults to obfuscated package/environment.

Default: null
debug boolean

Catch warning messages, increase verbosity.

Default: false
PrometheusConfig object

Config for Prometheus integration.

host string required

Host to bind to

port integer

Port to bind to

Default: 8000
update_interval number

Interval to update some metrics in seconds

Default: 1.0
ApiConfig object

Management API config

host string

Host to bind to

Default: "127.0.0.1"
port integer

Port to bind to

Default: 46339
ReindexingAction enum
AdvancedConfig object

This section allows users to tune some system-wide options, either experimental or unsuitable for generic configurations.

reindex Record<string, any>

Mapping of reindexing reasons and actions DipDup performs.

scheduler object | null

apscheduler scheduler config.

Default: null
postpone_jobs boolean

Do not start job scheduler until all indexes reach the realtime state.

Default: false
early_realtime boolean

Establish realtime connection and start collecting messages while sync is in progress (faster, but consumes more RAM).

Default: false
skip_version_check boolean

Disable warning about running unstable or out-of-date DipDup version.

Default: false
rollback_depth integer | null

A number of levels to keep for rollback.

Default: null
decimal_precision integer | null

Overwrite precision if it's not guessed correctly based on project models.

Default: null
unsafe_sqlite boolean

Disable journaling and data integrity checks. Use only for testing.

Default: false
alt_operation_matcher boolean

Use different algorithm to match Tezos operations (dev only)

Default: false