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.2.tar.gz (78.7 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.2-cp312-cp312-win_amd64.whl (272.4 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.2-cp312-cp312-win32.whl (250.4 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl (484.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.8 kB view details)

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

dao_treasury-0.1.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (503.9 kB view details)

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

dao_treasury-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (320.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.2-cp311-cp311-win_amd64.whl (270.6 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.2-cp311-cp311-win32.whl (248.9 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl (472.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (466.3 kB view details)

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

dao_treasury-0.1.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.9 kB view details)

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

dao_treasury-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (319.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.2-cp310-cp310-win_amd64.whl (271.0 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.2-cp310-cp310-win32.whl (249.6 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl (479.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.4 kB view details)

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

dao_treasury-0.1.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (478.1 kB view details)

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

dao_treasury-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (322.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.2.tar.gz
  • Upload date:
  • Size: 78.7 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.2.tar.gz
Algorithm Hash digest
SHA256 6d2664ef11e64b556a0b21a1682e13e39afeb540487e33b550d7aae68ae4e0df
MD5 dfc2b59cff2499e3d1108dfa0106e7f6
BLAKE2b-256 43af176eb5049ed952d2e07dda7182c40b3241d222ddfa78fd0b18dd4ab87df0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f84edbf6c2f3accbb3489fc80e5676fdb83317defa82fb5ebe48b172c1d83615
MD5 450949724e09a20e83653b139cd4a193
BLAKE2b-256 790e36246bec65d0bf3036353c347b23ede594378a57fcbf35622367c25f63d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 250.4 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.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 191e86fff1da240c140ed0126b8828d1358c8b51f2741c2f452c017117ffdb4b
MD5 ea808ef62ff332c44794bd546b0b67fb
BLAKE2b-256 4bae8c0efe6f7c70afe4407eb0b25d63d31c7712c04b104744775f72d027163a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 476cec874edb701052d4fd7d8814fc55758dfd67a1b6d5edbe0d28ff614963d0
MD5 acd802fcea62515e905f4157d43f2c8c
BLAKE2b-256 4253d7178b3db79bb829258cbc5e7576445b6ffeb257cc339be5c11d98d3a11b

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.2-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.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a490764ea33c9fc0aa557f827d292e1ae31dfd0c754fbaecb7daf04b0fbd0041
MD5 2f440012c25e30eba3b953e29fa1840f
BLAKE2b-256 26c43c23311fa6c688a14c4bdf908c6e9ecd3a10ee95f7128b59ef39cce0bccf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 1e08a4cfdd97042d52ae3ef89dd117b77542c0a65e4f066ecaa34ff3a5f25dfd
MD5 35d7e15f261383ce0a24df36723de5c2
BLAKE2b-256 ea7232879878f972705c78877ba5624b2a46a089cbbf4a53089b3e4e1f242f41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a135eae068071542288132ae1437ba742e79a7971da0382d469580341f371ad8
MD5 c1b61f132db490ae16703b26bfa4f09b
BLAKE2b-256 bfd247fce6e6d92c1fcd93406956012e64e82976b3893788895741a56c9589b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fd7ccc2ab2b153d273e07348bcc2b9486fc7591338e95f7ebd014ff022723945
MD5 b84502f246cd0103a6fb254917bb7515
BLAKE2b-256 9a71e1318c62d56a114db3c5fe52529d267a370086b9ba5cf26446acaeb478e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 248.9 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.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 fb15a1dfe21701bdf0336f5ec7de5d92cb16a88fb962dab33c29e12e20a1620a
MD5 7999012a05937f5a49573cb0d58b9c21
BLAKE2b-256 8236be2f9271807f24aa7a0a22a7b77ffd277f78956d609908a840d7a8b9da64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 69e8cf72fed8d346c4800f5531cf0577a408fa61eceaf4c08439ca81057f1af2
MD5 a302c8098fd1baa86e86fb0b023816e2
BLAKE2b-256 d775552a270bcd9af5acf190dc2fbf5a0f124b99155044469aa6ab8c3ac67bb1

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.2-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.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f65f9d1a65f40ff2b51d57d3c72d06d6c934c3d1d8ea408f2b782b61cd0b594
MD5 5c6f13159631e46fac96d8187d34c14c
BLAKE2b-256 6b0f2e845f4fac0f5b0972d75e638d3f7cbd64ffc3e9288257181447ddfa47eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 701ee2ce61e13837782833426e38cf991b27afb72de1f24c6ffd39096f850c10
MD5 17242cef90bc7978037b081683c0f102
BLAKE2b-256 af8bae72f9dca8f097434fdf4b548308cb9f6a6e611badab883908dae612716a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd1fbc166eec3111597c59d60070650e6bc795e946fda042f9bc169909fd0c84
MD5 22cd8bae2759b5957766181edfbf4cce
BLAKE2b-256 2888695b20a9d25b56771ded7732285cec808f22f9645d324a3db94d094b6899

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d3417f47c283e1669ea48a0fd6d8ee22fa486e6aedb8a59fb700295cbf2d4e42
MD5 43adf1f6c68ccdefb34f81ef9baa0253
BLAKE2b-256 8660f027e43885891ab4d588d38f1cfed3e0e0a3a70f49e12cf5f3db6ff41547

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 249.6 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.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 cd01df917a776da9a0e571fa3f8814a2b5074fded8ff041dab8695c78dc76005
MD5 cb23d6b32e77c299cc548b2c8672cb94
BLAKE2b-256 edd1eb54d2ee5ba9be509ca25a93525fe03f956c3986217899d205276b7a7d69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 447f992808797ba2c39fce09fcc5d986c10739e045826c42038f2ba35d32686c
MD5 16d3046c9a9c5f2697634a467e899e46
BLAKE2b-256 37c9f2eb8e9f86b0e0b914f37aeb20fb44e15c64cc9629c59e37ebb78ef71b10

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.2-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.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7075570d8226fb5904cbd17e42afe0303f75cfce4101e8b04d142abc6d4940fb
MD5 db60caa583925528a83cd98dc32c8b89
BLAKE2b-256 574717a6cfcc5d52a6aee3973a30dd0ba4ead6a8653d8cac858ad13227304bcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 d661d63af55e5e0c415f4cf52c06582ef8a80285b38cdfc8f1e6281f0ec270d6
MD5 3df1a24c6075c190e86513e6b4408dba
BLAKE2b-256 ed0eef01674fba650338f1654efe215d259e43d460dc58466afe977a367fe5da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06f700b41b250e0f085a71a06efc3f3bb3497b534f67a2318ccc3bfce6e31736
MD5 6c7c205b98f54468ae5809dd3b8d0b1b
BLAKE2b-256 a86fdcd16b8d0847dbff102e309e0ad7311e0f1db3ec4b91f6ffdb5ef42e86e8

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