Skip to main content

Produce comprehensive financial reports for your on-chain org

Project description

DAO Treasury is a comprehensive financial reporting and treasury management solution designed specifically for decentralized organizations. Built as an extension to eth-portfolio's Portfolio Exporter, DAO Treasury automates the collection and visualization of financial data, enabling organizations to monitor and report on treasury activities with clarity and transparency.

Key Features

  • Financial Reporting for DAOs: Extends core portfolio functionalities to generate detailed reports tailored for on-chain organizations.
  • Dashboard Provisioning: Utilizes Grafana dashboards—defined in JSON files within the .grafana/provisioning directories—to offer real-time, dynamic visualizations of treasury data.
  • Automated Data Export: Features a treasury export tool that, once configured (with a supported brownie network and Docker), continuously captures financial snapshots at set intervals.
  • Custom Buckets for Wallets: Assign custom categories ("buckets") to specific wallet addresses for more granular reporting using the --custom-bucket CLI option.
  • Ease of Contribution: Non-technical users can easily update or create dashboard visuals using Grafana’s intuitive UI. The Contributing Guidelines document provides a step-by-step guide to defining new visuals and dashboards and integrating those changes into the repository, ensuring that anyone can contribute to the visual reporting aspect of the project.

Requirements

  • Python 3.10 or higher.
  • At least 16GB of RAM.
  • All dependencies installed as specified in the project’s pyproject.toml file.

Prerequisites

  • First, you will need to bring your own archive node. This can be one you run yourself, or one from one of the common providers (Tenderly, Alchemy, QuickNode, etc.). Your archive node must have tracing enabled (free-tier Alchemy nodes do not support this option).
  • You must configure a brownie network to use your RPC.
  • You will need an auth token for Etherscan's API. Follow their guide to get your key, and set env var ETHERSCAN_TOKEN with its value.
  • You'll also need Docker installed on your system. If on MacOS, you will need to leave Docker Desktop open while DAO Treasury is running.

Installation

pip install dao-treasury

Usage

Run the treasury export tool:

# For pip installations:
dao-treasury run --wallet 0x123 --network mainnet --interval 12h

For local development (from source installation), use:

poetry run dao-treasury run --wallet 0x123 --network mainnet --interval 12h

Assigning Custom Buckets to Wallets:

You can assign custom categories ("buckets") to specific wallet addresses for more granular reporting. Use the --custom-bucket option one or more times, each with the format address:bucket_name:

dao-treasury run --wallet 0x123 --network mainnet --custom-bucket "0x123:Operations" --custom-bucket "0x456:Grants" --custom-bucket "0x789:Investments"

CLI Options:

Only optional arguments are listed here. Required arguments (such as --wallet or --wallets) are shown in the usage examples above.

  • --network: The id of the brownie network the exporter will connect to (default: mainnet)
  • --interval: The time interval between each data snapshot (default: 12h)
  • --concurrency: The max number of historical blocks to export concurrently. (default: 30)
  • --daemon: Run the export process in the background (default: False) (NOTE: currently unsupported)
  • --sort-rules: Directory containing sort rules definitions for transaction categorization.
  • --nicknames: File containing address nicknames for reporting.
  • --grafana-port: Set the port for the Grafana dashboard where you can view data (default: 3004)
  • --renderer-port: Set the port for the report rendering service (default: 8091)
  • --victoria-port: Set the port for the Victoria metrics reporting endpoint (default: 8430)
  • --start-renderer: If set, both the Grafana and renderer containers will be started for dashboard image export. By default, only the grafana container is started.
  • --custom-bucket: Assign a custom bucket/category to a wallet address for reporting. Specify as address:bucket_name. Can be used multiple times.

After running the command, the export script will run continuously until you close your terminal. To view the dashboards, just open your browser and navigate to http://localhost:3004!

Docker

When you run DAO Treasury, eth-portfolio will build and start 4 required Docker containers on your system. Additionally, DAO Treasury will build and start 2 more required containers:

  • grafana

    • Provides a web-based dashboard for visualizing your treasury data.
    • Pre-configured with dashboards and plugins for real-time monitoring.
    • Uses persistent storage to retain dashboard settings and data.
    • Accessible locally (default port 3004, configurable via --grafana-port).
    • Supports anonymous access for convenience.
    • Integrates with the renderer container for dashboard image export.
    • Loads dashboards and data sources automatically via provisioning files.
  • renderer

    • Runs the official Grafana image renderer service.
    • Enables Grafana to export dashboards as images for reporting or sharing.
    • Operates on port 8091 by default (configurable via --renderer-port).
    • Tightly integrated with the Grafana container for seamless image rendering.
    • Note: The renderer container is only started if you pass the --start-renderer CLI flag.

How it works:

  1. DAO Treasury collects and exports treasury data.
  2. Grafana displays this data in pre-built dashboards for analysis and reporting.
  3. The renderer container allows dashboards to be exported as images directly from Grafana (if enabled).

Additional Information:

  • All containers are orchestrated via Docker Compose and started automatically as needed.
  • Grafana provisioning ensures dashboards and data sources are set up out-of-the-box.
  • All dashboard data and settings are persisted for durability.
  • Dashboard images can be generated for reporting via the renderer (if enabled).

Screenshots

DAO Transactions Dashboard

image

Contributing

We welcome contributions to DAO Treasury! For detailed guidelines on how to contribute, please see the Contributing Guidelines.

Enjoy!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dao_treasury-0.1.6.tar.gz (78.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dao_treasury-0.1.6-cp312-cp312-win_amd64.whl (272.1 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.6-cp312-cp312-win32.whl (250.1 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.6-cp312-cp312-musllinux_1_2_x86_64.whl (484.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.1.6-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (503.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.1.6-cp312-cp312-macosx_11_0_arm64.whl (320.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.6-cp311-cp311-win_amd64.whl (270.3 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.6-cp311-cp311-win32.whl (248.6 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl (472.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (466.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.1.6-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.1.6-cp311-cp311-macosx_11_0_arm64.whl (319.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.6-cp310-cp310-win_amd64.whl (270.7 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.6-cp310-cp310-win32.whl (249.3 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.6-cp310-cp310-musllinux_1_2_x86_64.whl (479.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.1.6-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (477.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.1.6-cp310-cp310-macosx_11_0_arm64.whl (322.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file dao_treasury-0.1.6.tar.gz.

File metadata

  • Download URL: dao_treasury-0.1.6.tar.gz
  • Upload date:
  • Size: 78.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.1.6.tar.gz
Algorithm Hash digest
SHA256 c13f5377ddcadb29292b106636ada1de5c407d349adb0d245df50287f8301fd5
MD5 075cbcddaa8f96d4039e93d7e7422079
BLAKE2b-256 9f0b8d66c2e74de1396cce855acef8948ef26bdedd130dd7dca41bf020ef711e

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 201f379ac5f85df75cf19d23c9a2987248fd9676de7cad263272568c5df54931
MD5 822b2fdebabe630e31845e0432bb8d2e
BLAKE2b-256 ff14ad18844a5031ed1094187ea44c977210793cea8be112472942aae2c7ab60

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-win32.whl.

File metadata

  • Download URL: dao_treasury-0.1.6-cp312-cp312-win32.whl
  • Upload date:
  • Size: 250.1 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 b5e11eea879d9594f784d733ba19861197df93090e90081c07c7dad0581aea89
MD5 13c1bb1e2876d81e5f092bea014672c6
BLAKE2b-256 7d2647ea5afb6153e4d56031b946446c21abb6f69979b4595b91bb4d20b283e6

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bf31d2aebcffd7778b74a28bfc5699ef4a301baa1d2fc5a1f5cfaa589b1a0dc6
MD5 8cb9a243da34c07fb275825e78350c75
BLAKE2b-256 7aa313ebbfdb50df2f70a69731c05de612f1f7ab2e3181b1949d57bcc2281ba6

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c48f13ff6e984dec1c066c44b3c70e85a2b225ae01dbc15c076dde41635bf92f
MD5 2cf55b809c6f565cbe292ffa7bda9412
BLAKE2b-256 f5ee3a6a63c5a9f62f707f47ecbcb53e6cc9eaac11884e7fd93f36887227deba

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 ed7ca989fd56a7d155be43ee1245b6dfa40a3992026f28792f02849e44e7f986
MD5 2f6e51eae7ba5957b84ff41ea941b726
BLAKE2b-256 79b5f3eca2a118061baba4cbe7e253658c622a0b59b597602cf98b83fdf08a71

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 764cd5f9e82b0fffae8b866acfc1e34845648354b2975b58a16dcc80044df110
MD5 df0ce00df67ccac156cae47e37ce1e69
BLAKE2b-256 bdcd546570d00f3df518fc79aa6433e058902cd30c5eabfb995925d48466fc40

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3ebdbe35a6b197e563c6a060a51df8a717b02d9645019434cfca84a551477a10
MD5 ed85f499b38c5234e9d9ee39119501a5
BLAKE2b-256 19118a17d591ee2073a03e54f77740b9a5af6734f8b6c7608a438c9ce3c3b8e7

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-win32.whl.

File metadata

  • Download URL: dao_treasury-0.1.6-cp311-cp311-win32.whl
  • Upload date:
  • Size: 248.6 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 117386db1c84f2140b79416335c578704dc2f565810679dc17565b80d94c404e
MD5 a6e63fff34e41c8e9ab3e09243c80e77
BLAKE2b-256 4d64f737f269a177a644232d5953cd8e822b0fb658f8119ae4e9b6f6d4df3109

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e071501a5a461b028a89ef903ff474c80da5b1dc91b470d90cb5e35b49fd65d6
MD5 f24d9401d39f070034b1e7fa38523e8d
BLAKE2b-256 2de46a88f3b7c5091a3368001cb26089b11e0b744698e732ae948dc2b0070e62

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d733c56adca7075fa90ab97258061e8fec06940bc6495e1b8184b83092de14cc
MD5 93b412c1a1bf61163ba7e919117635cd
BLAKE2b-256 4d5f3c0f689fa028057e396c047f9f98c856695c4c4515b2a9767d6fda859bde

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 f983b588b2f78845422a4e8256a0f327ac8e422bb4949111ddb04859b8ccf85f
MD5 b4a7a3dc3da092a4a9a40947d4fecfda
BLAKE2b-256 f8beaeee87a9c6964cd9543a6b1eeb8cac02fa59068ac4f88d4d8868507a7e5c

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ad99514fa9be89867d3b922f5330b7180f1f4ad3bd47a7df77f3370743c0286
MD5 ef95aa9dfd78c21212a6dc4d9e773ca7
BLAKE2b-256 3aaffdfa3494f8b34565f2845e7a4783117b6cd10ff4a50ff8df15af9d576eaf

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 765cf5fb746e6f49d33f16574922618b29e25657bb52453aba142e14f43e5fb3
MD5 245fa757f5529bfb54fc8bf036fca866
BLAKE2b-256 fef582d46e867cb97951cb28626963111d2b70cd1dabb5df4b604289ffc0b9f6

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-win32.whl.

File metadata

  • Download URL: dao_treasury-0.1.6-cp310-cp310-win32.whl
  • Upload date:
  • Size: 249.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d98d228225ef17f2e53de95e48b4357eead6c3550b5fc494dfd8522989e83adf
MD5 8c36cdbec56c445bb7ac486bbc7e224e
BLAKE2b-256 57f54edb0b5ba28d02c5e50ab186fdc5c520e819ba186e710382859e3a79d0c6

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dbc6622dbdbcbb232c1a1b4d173408d4c4ff2ce8c2512df873bf2a004fa58766
MD5 3a1264d4f032d2e09a9d8fb0988e1d24
BLAKE2b-256 3ca02ff2a9c244c5d27ac6c69b30da98c12fe830fd987edeb8e14de0fae007d2

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08661a5c4cd6fef14757fa366b84cdbe8579978401067949ce4c02f4792f5ff6
MD5 66b6c9511e4e9156d0e4bd85bf474476
BLAKE2b-256 98731edc883a07fa7d155c057c42eca4cb10e1500527526bc4eeeeba9efbd3ab

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 c20bba1e3aa8483d3e56f197281e82cc9cd479cf0a5749951d777f444882bf2f
MD5 68a528b884c28674b8f7b963e9948ffb
BLAKE2b-256 e7459024887870f9d716674a80204558df5aae08447bf693aad20e9b581d73dd

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.1.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f8fc7b969dbcf4d1c7a8ac3ecdca0c69fc7471073a1c6fa2d5d40e361bd96c2
MD5 1f08fdd4a9a0092a979fc734994cf5ab
BLAKE2b-256 41eb1bac98b7468f83eef53071401a3ab8b72e3530d9ff916d8344ac448fd6c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page