[![Twitter](https://badgen.net/badge/icon/dipdup_io?icon=twitter&label=)](https://twitter.com/dipdup_io)
[![Monthly downloads](https://static.pepy.tech/badge/dipdup/month)](https://pepy.tech/project/dipdup)
[![GitHub stars](https://img.shields.io/github/stars/dipdup-io/dipdup?color=2c2c2c&style=plain)](https://github.com/dipdup-io/dipdup)
[![Python Version](https://img.shields.io/pypi/pyversions/dipdup?color=2c2c2c)](https://www.python.org)
[![License: MIT](https://img.shields.io/github/license/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/blob/next/LICENSE)
<br>
[![Latest stable release](https://img.shields.io/github/v/release/dipdup-io/dipdup?label=stable%20release&color=2c2c2c)](https://github.com/dipdup-io/dipdup/releases)
[![Latest pre-release](https://img.shields.io/github/v/release/dipdup-io/dipdup?include_prereleases&label=latest%20release&color=2c2c2c)](https://github.com/dipdup-io/dipdup/releases)
[![GitHub issues](https://img.shields.io/github/issues/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/pulls)
<h3 align="center"><img src="https://actual-docs.interface-1bp.pages.dev/_nuxt/logo.9b02ab5e.svg" alt="DipDup logo"></h3>
DipDup is a Python framework for building smart contract indexers. It helps developers focus on business logic instead of writing a boilerplate to store and serve data. DipDup-based indexers are selective, which means only required data is requested. This approach allows to achieve faster indexing times and decreased load on underlying APIs.
- **Ready to build your first indexer?** Head to [Quickstart](https://dipdup.io/docs/quickstart).
- **Looking for examples?** Check out [Demo Projects](https://dipdup.io/docs/examples/demos) and [Built with DipDup](https://dipdup.io/docs/examples/built-with-dipdup) pages.
- **Want to participate?** Vote for [open issues](https://github.com/dipdup-io/dipdup/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc), join [discussions](https://github.com/dipdup-io/dipdup/discussions) or [become a sponsor](https://github.com/sponsors/dipdup-io).
- **Have a question?** Join our [Discord](https://discord.gg/aG8XKuwsQd) or tag @dipdup_io on [Twitter](https://twitter.com/dipdup_io).
This project is maintained by the [Baking Bad](https://bakingbad.dev/) team.
<br>
Development is supported by [Tezos Foundation](https://tezos.foundation/) and [OnlyDust](https://www.onlydust.xyz).
Raw data
{
"_id": null,
"home_page": null,
"name": "dipdup",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.12",
"maintainer_email": "Lev Gorodetskii <dipdup@drsr.io>, Vladimir Bobrikov <vladimir_bobrikov@pm.me>, Igor Sereda <sereda.igor.s@gmail.com>",
"keywords": "api, backend, blockchain, crypto, cryptocurrencies, dapp, ethereum, evm, framework, indexer, indexers, starknet, sdk, smart-contracts, tezos, web3",
"author": null,
"author_email": "Lev Gorodetskii <dipdup@drsr.io>, Vladimir Bobrikov <vladimir_bobrikov@pm.me>, Michael Zaikin <mz@baking-bad.org>, Igor Sereda <sereda.igor.s@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f4/b9/645270afca9a8f5cfe34d2a511b1e9eab470d2ac6a46f7cfb2176464c4b7/dipdup-8.1.0.tar.gz",
"platform": null,
"description": "[![Twitter](https://badgen.net/badge/icon/dipdup_io?icon=twitter&label=)](https://twitter.com/dipdup_io)\n[![Monthly downloads](https://static.pepy.tech/badge/dipdup/month)](https://pepy.tech/project/dipdup)\n[![GitHub stars](https://img.shields.io/github/stars/dipdup-io/dipdup?color=2c2c2c&style=plain)](https://github.com/dipdup-io/dipdup)\n[![Python Version](https://img.shields.io/pypi/pyversions/dipdup?color=2c2c2c)](https://www.python.org)\n[![License: MIT](https://img.shields.io/github/license/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/blob/next/LICENSE)\n<br>\n[![Latest stable release](https://img.shields.io/github/v/release/dipdup-io/dipdup?label=stable%20release&color=2c2c2c)](https://github.com/dipdup-io/dipdup/releases)\n[![Latest pre-release](https://img.shields.io/github/v/release/dipdup-io/dipdup?include_prereleases&label=latest%20release&color=2c2c2c)](https://github.com/dipdup-io/dipdup/releases)\n[![GitHub issues](https://img.shields.io/github/issues/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/dipdup-io/dipdup?color=2c2c2c)](https://github.com/dipdup-io/dipdup/pulls)\n\n<h3 align=\"center\"><img src=\"https://actual-docs.interface-1bp.pages.dev/_nuxt/logo.9b02ab5e.svg\" alt=\"DipDup logo\"></h3>\n\nDipDup is a Python framework for building smart contract indexers. It helps developers focus on business logic instead of writing a boilerplate to store and serve data. DipDup-based indexers are selective, which means only required data is requested. This approach allows to achieve faster indexing times and decreased load on underlying APIs.\n\n- **Ready to build your first indexer?** Head to [Quickstart](https://dipdup.io/docs/quickstart).\n\n- **Looking for examples?** Check out [Demo Projects](https://dipdup.io/docs/examples/demos) and [Built with DipDup](https://dipdup.io/docs/examples/built-with-dipdup) pages.\n\n- **Want to participate?** Vote for [open issues](https://github.com/dipdup-io/dipdup/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc), join [discussions](https://github.com/dipdup-io/dipdup/discussions) or [become a sponsor](https://github.com/sponsors/dipdup-io).\n\n- **Have a question?** Join our [Discord](https://discord.gg/aG8XKuwsQd) or tag @dipdup_io on [Twitter](https://twitter.com/dipdup_io).\n\nThis project is maintained by the [Baking Bad](https://bakingbad.dev/) team.\n<br>\nDevelopment is supported by [Tezos Foundation](https://tezos.foundation/) and [OnlyDust](https://www.onlydust.xyz).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Modular framework for creating selective indexers and featureful backends for dapps",
"version": "8.1.0",
"project_urls": {
"Documentation": "https://dipdup.io/docs",
"Homepage": "https://dipdup.io/",
"Repository": "https://github.com/dipdup-io/dipdup"
},
"split_keywords": [
"api",
" backend",
" blockchain",
" crypto",
" cryptocurrencies",
" dapp",
" ethereum",
" evm",
" framework",
" indexer",
" indexers",
" starknet",
" sdk",
" smart-contracts",
" tezos",
" web3"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "76b08658937e45c71cfdea45870d2b5a567d72963eccb0cde1e18bce78800370",
"md5": "4858dc0147d17b6f31575d328157c5be",
"sha256": "36abafc5c925a648a3c5fef6e53f31a7b758c2ca460e599e0b666c0f5846e22c"
},
"downloads": -1,
"filename": "dipdup-8.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4858dc0147d17b6f31575d328157c5be",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.12",
"size": 304537,
"upload_time": "2024-10-16T19:57:44",
"upload_time_iso_8601": "2024-10-16T19:57:44.605507Z",
"url": "https://files.pythonhosted.org/packages/76/b0/8658937e45c71cfdea45870d2b5a567d72963eccb0cde1e18bce78800370/dipdup-8.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f4b9645270afca9a8f5cfe34d2a511b1e9eab470d2ac6a46f7cfb2176464c4b7",
"md5": "9e64cae6bbb3c8ffa6f00c2a83fd6d18",
"sha256": "1fda45eb4a5c4d120f8e0bb7b5b9c733f275ca55d443ea036c456e8dd24decea"
},
"downloads": -1,
"filename": "dipdup-8.1.0.tar.gz",
"has_sig": false,
"md5_digest": "9e64cae6bbb3c8ffa6f00c2a83fd6d18",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.12",
"size": 625900,
"upload_time": "2024-10-16T19:57:46",
"upload_time_iso_8601": "2024-10-16T19:57:46.669357Z",
"url": "https://files.pythonhosted.org/packages/f4/b9/645270afca9a8f5cfe34d2a511b1e9eab470d2ac6a46f7cfb2176464c4b7/dipdup-8.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-16 19:57:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dipdup-io",
"github_project": "dipdup",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiohappyeyeballs",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "aiohttp",
"specs": [
[
"==",
"3.10.10"
]
]
},
{
"name": "aiolimiter",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "aiosignal",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "aiosqlite",
"specs": [
[
"==",
"0.20.0"
]
]
},
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"4.6.2.post1"
]
]
},
{
"name": "appdirs",
"specs": [
[
"==",
"1.4.4"
]
]
},
{
"name": "apscheduler",
"specs": [
[
"==",
"3.10.4"
]
]
},
{
"name": "argcomplete",
"specs": [
[
"==",
"3.5.0"
]
]
},
{
"name": "asgiref",
"specs": [
[
"==",
"3.8.1"
]
]
},
{
"name": "async-lru",
"specs": [
[
"==",
"2.0.4"
]
]
},
{
"name": "asyncpg",
"specs": [
[
"==",
"0.29.0"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"24.2.0"
]
]
},
{
"name": "bitarray",
"specs": [
[
"==",
"2.9.2"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"24.10.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.8.30"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "ckzg",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.7"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "crypto-cpp-py",
"specs": [
[
"==",
"1.4.4"
]
]
},
{
"name": "cytoolz",
"specs": [
[
"==",
"0.12.3"
]
]
},
{
"name": "datamodel-code-generator",
"specs": [
[
"==",
"0.26.1"
]
]
},
{
"name": "dnspython",
"specs": [
[
"==",
"2.6.1"
]
]
},
{
"name": "ecdsa",
"specs": [
[
"==",
"0.18.0"
]
]
},
{
"name": "email-validator",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "eth-abi",
"specs": [
[
"==",
"5.1.0"
]
]
},
{
"name": "eth-account",
"specs": [
[
"==",
"0.13.3"
]
]
},
{
"name": "eth-hash",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "eth-keyfile",
"specs": [
[
"==",
"0.8.1"
]
]
},
{
"name": "eth-keys",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "eth-rlp",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "eth-typing",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "eth-utils",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "frozenlist",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "genson",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "hexbytes",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.8"
]
]
},
{
"name": "inflect",
"specs": [
[
"==",
"5.6.2"
]
]
},
{
"name": "iso8601",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"5.13.2"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.4"
]
]
},
{
"name": "lark",
"specs": [
[
"==",
"1.2.2"
]
]
},
{
"name": "lru-dict",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"2.1.5"
]
]
},
{
"name": "marshmallow",
"specs": [
[
"==",
"3.22.0"
]
]
},
{
"name": "marshmallow-dataclass",
"specs": [
[
"==",
"8.7.0"
]
]
},
{
"name": "marshmallow-oneofschema",
"specs": [
[
"==",
"3.1.1"
]
]
},
{
"name": "mpmath",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "msgpack",
"specs": [
[
"==",
"1.0.8"
]
]
},
{
"name": "multidict",
"specs": [
[
"==",
"6.0.5"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "orjson",
"specs": [
[
"==",
"3.10.7"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"24.1"
]
]
},
{
"name": "parsimonious",
"specs": [
[
"==",
"0.10.0"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.2.2"
]
]
},
{
"name": "poseidon-py",
"specs": [
[
"==",
"0.1.5"
]
]
},
{
"name": "prometheus-client",
"specs": [
[
"==",
"0.21.0"
]
]
},
{
"name": "propcache",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "pycryptodome",
"specs": [
[
"==",
"3.21.0"
]
]
},
{
"name": "pydantic-core",
"specs": [
[
"==",
"2.23.4"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.9.2"
]
]
},
{
"name": "pyhumps",
"specs": [
[
"==",
"3.8.0"
]
]
},
{
"name": "pypika-tortoise",
"specs": [
[
"==",
"0.2.1"
]
]
},
{
"name": "pysignalr",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "python-json-logger",
"specs": [
[
"==",
"2.0.7"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "pyunormalize",
"specs": [
[
"==",
"15.1.0"
]
]
},
{
"name": "pywin32",
"specs": [
[
"==",
"306"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "regex",
"specs": [
[
"==",
"2024.7.24"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "rlp",
"specs": [
[
"==",
"4.0.1"
]
]
},
{
"name": "ruamel-yaml",
"specs": [
[
"==",
"0.18.6"
]
]
},
{
"name": "ruamel-yaml-clib",
"specs": [
[
"==",
"0.2.8"
]
]
},
{
"name": "sentry-sdk",
"specs": [
[
"==",
"2.16.0"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "sqlparse",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "starknet-py",
"specs": [
[
"==",
"0.24.0"
]
]
},
{
"name": "strict-rfc3339",
"specs": [
[
"==",
"0.7"
]
]
},
{
"name": "survey",
"specs": [
[
"==",
"5.4.0"
]
]
},
{
"name": "sympy",
"specs": [
[
"==",
"1.11.1"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "toolz",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "tortoise-orm",
"specs": [
[
"==",
"0.21.7"
]
]
},
{
"name": "typeguard",
"specs": [
[
"==",
"4.0.1"
]
]
},
{
"name": "types-requests",
"specs": [
[
"==",
"2.32.0.20240712"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "typing-inspect",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "tzdata",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "tzlocal",
"specs": [
[
"==",
"5.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.2"
]
]
},
{
"name": "uvloop",
"specs": [
[
"==",
"0.21.0"
]
]
},
{
"name": "web3",
"specs": [
[
"==",
"7.3.1"
]
]
},
{
"name": "websockets",
"specs": [
[
"==",
"12.0"
]
]
},
{
"name": "yarl",
"specs": [
[
"==",
"1.15.3"
]
]
}
],
"lcname": "dipdup"
}