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.

Debug logging

DAO Treasury relies on ypricemagic for price lookups. If you need to spot long-running price calls, enable the y.stuck? logger at DEBUG. Details: y.stuck? logger.

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.12.tar.gz (78.9 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.12-cp312-cp312-win_amd64.whl (274.5 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.12-cp312-cp312-win32.whl (251.8 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.12-cp312-cp312-musllinux_1_2_x86_64.whl (486.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.12-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (488.9 kB view details)

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

dao_treasury-0.1.12-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (507.8 kB view details)

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

dao_treasury-0.1.12-cp312-cp312-macosx_11_0_arm64.whl (321.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.12-cp311-cp311-win_amd64.whl (272.5 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.12-cp311-cp311-win32.whl (250.8 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.12-cp311-cp311-musllinux_1_2_x86_64.whl (475.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.12-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (468.6 kB view details)

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

dao_treasury-0.1.12-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (473.6 kB view details)

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

dao_treasury-0.1.12-cp311-cp311-macosx_11_0_arm64.whl (320.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.12-cp310-cp310-win_amd64.whl (272.8 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.12-cp310-cp310-win32.whl (251.2 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.12-cp310-cp310-musllinux_1_2_x86_64.whl (481.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.12-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (474.8 kB view details)

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

dao_treasury-0.1.12-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (481.2 kB view details)

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

dao_treasury-0.1.12-cp310-cp310-macosx_11_0_arm64.whl (323.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.12.tar.gz
Algorithm Hash digest
SHA256 63499bcd2d78e934068649db218651505bbe2e7a8777ce218393fd9b0d109972
MD5 d2fbcc7de3bf63a081f0c02dbe602bc1
BLAKE2b-256 db8f6f57b799bd23679c0d4172c88288a5d843856fac239cc1798b9ee9d24563

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9ead11d4d59b1b75441e99c4ebc73646b4d760b3e7030b6352d1dff561fbde09
MD5 f93c415d28cfef5c76637909f5144fee
BLAKE2b-256 23977dca3220d98eff284400b9406f17023bbc7f362dd8ba81241b32d224c10a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.12-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 8645c932a09340e81e6c86bca9ca79dcd195f1c396adb135bb43faca83b70747
MD5 8d0717344b7439bbfb5c26aa574b3987
BLAKE2b-256 8181db76b94bd3e899ec29472a805737884cb5d40b64ccfd33eec97b4789fef0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be67bdbf7575d90732e8f0782bb065703dc8b79b1ccb0da645c49ad5648f3eb2
MD5 4fab60f1ce12ced24379df0a28420071
BLAKE2b-256 3b7a4c2707b1fbf4453507b4fbf06ce61f72ba6162846e7e3bd2dd142b7d44f8

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.12-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.12-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08e11e19cd5b0cd2383b88560cba7a37c5585b72e42f65e0915c5e4948fee85b
MD5 30b74f5578982221a7f7862caf6227a7
BLAKE2b-256 e3286076fce052ba8f26f873e485c9fd3e5fc268257b60c3bf1e27bac461f541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 c623020c265c67649e13ed13a04deb9b3b05b07f612cfee62f5fb3b96bed7dd4
MD5 2a30402d4a21cbda2dfc693fe69658ff
BLAKE2b-256 0638d6d01fc0145b5feaa57ec5e3c90c47c8b01dbb3167230fe866b654c56a3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13d7ce477ee22dda4c7b3d8ca589f97f0a62fcbbba5c4a2441cbeaef741028b9
MD5 5528cbac4246f8f1d05600f68a97e618
BLAKE2b-256 c0844fdb9b198dbb538581cf56410e6bd947d5d0e3da0e6cc5280bea95bf196b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9ee5e4ae1810c610442b133d51dca2a31ed7b9e4ea5dd91c56a751ff20a67af6
MD5 b0b0c5d08da3a24b947dff6fdbe9d532
BLAKE2b-256 46dac26fb9555d645b5f1ee188c2db69a3415218ec66f0e87d96247a576df14b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.12-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3777e87bd5e730c2fed9ab0f7b1137fa0336c32fdb7e2385cf2ffbbc7bb88667
MD5 c4be26a07f84b24782df7bf81b18b2a1
BLAKE2b-256 c1426abbf9b754d09e40b5e6e1a5ecb4a0d00ef3e2a95eafe8b4fd77e46ba979

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 07e0e360fc6b0feb0e96295963bf84655a830e7ad430559fbdbc79c2b7b57050
MD5 702d463eb7dbe15c6e463729eac00ecc
BLAKE2b-256 4dc449538eacc40edc4ee3dc7f39f0391996c0c8a6542979e19fcff8befbdb2a

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.12-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.12-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79e2d2236c423f5c184d32ba1c3d950c426fbc503ed2cadee895e29744730faf
MD5 e0075bf3d253a228a233827376b717a4
BLAKE2b-256 28c4049aaf98f9ffdd2b8b6085a24377b4f71ff4ad74429b09120f5ef50c8797

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 4b67c4dc88eac6ce01fb97b3f53a303aa959926173490d1c988be63915ff4bf1
MD5 c60a522cf4e479757523dd6fea1982ec
BLAKE2b-256 4828cdf0065a4c0073116ed73c625e8737accd23509f5a030920d550c0a5f098

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a16e83b4755f84f6cea31497c039f674f0635f1ab33a02820350b311e0ef1807
MD5 7091790d8e49a86f172296a81a90cedd
BLAKE2b-256 eb1b95915528501447a1ce8543aab39aeb02d4d758a19bffc55be0dde563cee6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0663abbd4da8ac6e3ce167dfdee05775bf5b995f5bdd276ddd8ea95d07018f40
MD5 3df6d653fff0729d51e74f0da5032321
BLAKE2b-256 023f0aa9a9d3a04053209cc4f3cc33085de3664775628b3879e95af3836b649c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.12-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f284aa7891d0442cf64883b1540a9ecf68018429b84eb439a0ef7a364a831a95
MD5 94c2650421ab3591d3efdfba4e2e7db2
BLAKE2b-256 7549c397facfe26f4379563ae2f178a997dad7efd7ef856f2adfb70a1d2641a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0cf31e01285a65b27a61fffa698147464115d63eb44227a5aeb760f1c5c39ed3
MD5 ff0f195fc5ef3cffc175d2f71b418f81
BLAKE2b-256 fa4b5e33cf98d16fd1394be1df91a6e48f786aca81311a104d232020497da928

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.12-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.12-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ad4151c77f9201647de487198526e3f5006192993519c700e0b487b8199e10e
MD5 20a51c93ebb77b44cea606d83b4b20d7
BLAKE2b-256 39e253913e529570e43a23a935be00a387b8527a1d12ba5815bf4766df88be03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 49a813ba7f68e920d67e6c278c8400d1b422fa926ce18db321138a71b4885222
MD5 384c290a6a5985610d1ce92737c1a059
BLAKE2b-256 544715c1bf4182170fe774e703b7397305d56cb8e3e6d6c58c86b31e8dd64780

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c3c6bda7e04788ae7d13e1e3063f99274745f718506f0de9fd42a7613ffada3
MD5 fd44167a877be46a97e5c77d8965c773
BLAKE2b-256 658d2fe81ef48408d64a0671f9027c050c99517f28058321df5db44b3dfd7fdf

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