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.8.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.8-cp312-cp312-win_amd64.whl (272.0 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.8-cp312-cp312-musllinux_1_2_x86_64.whl (482.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (483.9 kB view details)

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

dao_treasury-0.1.8-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (502.0 kB view details)

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

dao_treasury-0.1.8-cp312-cp312-macosx_11_0_arm64.whl (319.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.8-cp311-cp311-win32.whl (248.7 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.8-cp311-cp311-musllinux_1_2_x86_64.whl (470.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (464.6 kB view details)

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

dao_treasury-0.1.8-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (469.3 kB view details)

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

dao_treasury-0.1.8-cp311-cp311-macosx_11_0_arm64.whl (317.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.8-cp310-cp310-win_amd64.whl (270.6 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.8-cp310-cp310-musllinux_1_2_x86_64.whl (477.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (470.9 kB view details)

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

dao_treasury-0.1.8-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (476.2 kB view details)

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

dao_treasury-0.1.8-cp310-cp310-macosx_11_0_arm64.whl (321.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.8.tar.gz
  • Upload date:
  • Size: 78.5 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.8.tar.gz
Algorithm Hash digest
SHA256 7fb509325d989219bcdd0898573e0f6c1baaa592fafc24ff668935a57f857200
MD5 08794ada5af2141b9a2f548d6916d149
BLAKE2b-256 1848e879fe08477e194eb61e92bd723387bc29419e23f65ab899bcb4a29288e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 252b95e7537a9d496cc74a5e13f47dabebd52f62e43b286b27568737a99ad64f
MD5 d427c6d5264f54c5a8ed583af6bc7588
BLAKE2b-256 4ec478e07f1d3e719f7daa49859ba14e753ae1b01962cbd3884704bfb0f4d2cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.8-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.11

File hashes

Hashes for dao_treasury-0.1.8-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 ba6c7e60c737956a12b407660dc9ec18d796bc564bad493abe75542af1cb04d9
MD5 ce28634046c19bf88d23d45dbb2bd0f4
BLAKE2b-256 e5911d691d2991b631863ee6c033f53ee9f9ca7e8d358a82d97e2e21b811dbc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba099f5ef444db955ffefbe0e107dc3355525fff9fb720e193d9cad1aaa8684e
MD5 8de13697691ca14a9c1a6c0b2ac10046
BLAKE2b-256 d60ed8afe8c22cb46e683a34bf5637e5a72ff9345069bb0e1ec43f22161e96a1

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.8-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.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 627534f5ba6d602359ef494b524fb6a9326fffeb3147da66c79f1e7bbc9e00cf
MD5 60b3256da252689708bf0a8ccbd829c7
BLAKE2b-256 00831a298a1f17ad970cb18bb03e7f0c41e70ee0dd33ecfb62caff9aa8091b72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 bbe728b1c2b3d5291db49b54c75677871c27e8e0e9488487c3b6e4984c832e8c
MD5 1e4046d198f4bc9f38e27e033aee4189
BLAKE2b-256 4121a5793d077b619f32a22da368f55477af904d3daaca46e6f7548b2253ddd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26f5fdfaaaa0cd4009a355705b0c43276ac67e06ece2d06c5a9df9b794944ddb
MD5 d58045bb0a742e396f415ea2a765ae5b
BLAKE2b-256 bad2cd358e35db29c571adbffa02caed6b4c4b9c63951f153054aa4d432915a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9a2a0cd6d715724b2cc50fb084059d6cae04f323e06d57ad8870b2296fb9f13f
MD5 c9b9532f08ec2cfa5b2ee8f5e9eebfa4
BLAKE2b-256 92ae4e6987633f9d8abba3ac270415249f97da8b3b1e3185062d265ca697cb6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.8-cp311-cp311-win32.whl
  • Upload date:
  • Size: 248.7 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.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 21dd83aaf7ce8aa55c57dd9e52aa869738f64275e3ee1237824b518fddbbe548
MD5 b965b17de64bbc592e72e423149db251
BLAKE2b-256 a43844f6a3f0574bb165274037af9d3a57fe58e84ef1c8e8b292b49850755bf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 14692ca755b3b85dc79247cbd2fe870892fd8f817ebf5b7d3396f1e4e99d2b79
MD5 8bfa546d81168d5a6ade4505167a3611
BLAKE2b-256 eb48499bb5856c63f4077ae7cc66c4e5721d7b1ae33a4b7645450a5ca64e68f2

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.8-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.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d149ccfb3202bb4c2ed9ca07a3e4055689bffdc4cd638f2dd923e2f8da997f1
MD5 da76a4e15ee6c4f1f3b8e65c2a8b5321
BLAKE2b-256 a3f6f05161e3c232d6b64c84d60010c13e7a91094bc9022f83c41c3b62c9db0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 8fbf93034e6f73b49b8077461c13bed58a2f322c43da2860a90bea9f67a729f0
MD5 a497ef1b3cc9d6d2ffc6945dc69a1a5d
BLAKE2b-256 a2698a4c794ddd0985a2c1af30b7e00c83c88ed1add93e272168901dc6ac29a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d67e43701c3d6cab9321952241874d7adba31ee11687805c5dc648a102a3338d
MD5 5d0abdf6854327dd5b7ca2f4a43d372d
BLAKE2b-256 6b009384d53e411fb939a55e3e140b383496bac95a5199a07a7d900f3d3ff1a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eb6524bf570063160a8c487072165b3a7265c8f7e21414e49d0f03a72263974e
MD5 2223ddb33deeaa5122bec21cf803f6d0
BLAKE2b-256 abdd42868003093fff252651413c3c6193c9048b40f7bd2a9560493d3f05d59b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.8-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.11

File hashes

Hashes for dao_treasury-0.1.8-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 05c73dc5a5b0552373d2c870e93758e42457c17f2162e2161afde8863b4f6d25
MD5 02d7d562b2b2228db7e512fb5c378cab
BLAKE2b-256 54c1b73bfb4dd0011e2cfb6f0eaff351ba6c6cd1a135f4c877a86d3a99d0a6ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 baf6d6da663c2ddb609c9533345267972d27b0ee0e21f8ef8b84e946b4841f1a
MD5 5fac7a12e2973d8c96ed5d82477fad78
BLAKE2b-256 8f9370c5278ad429bcae47c7ae406a747d17d24e666a1d68a5f3a0387d613d01

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.8-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.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de4e2f07c6b4221494c85e58702f6e1e99a925169f904f5f46ed44828b8c64bd
MD5 0781cbd2105d633c32e276b900c093aa
BLAKE2b-256 bcf4ffbea0b19d88168249415b54b7fe7ec11922fba1db57ae99f5cca928de1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 f9eab21db013ac88ab544a5c8a7e21693b0808ca4f97e1c6be6ec478b76b2ca1
MD5 ea063627c897b94f2c7e9710f44e2b5d
BLAKE2b-256 a9dd8d9beb65aa5a21268f338d9681e31db5fe11263491a2ec792a4d8d047f12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f389d03ce6d6ec70ba167e5403e6a58b3004fca29d4ed351d277955ffa29cf7b
MD5 c0268bda54812cd1b1dd25f2e58b79e5
BLAKE2b-256 1c3adde1faa0f4805cee49947e1fda9a71786f6fec31c6eb7a46b107c6860f2a

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