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.11.tar.gz (78.8 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.11-cp312-cp312-win_amd64.whl (274.6 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.11-cp312-cp312-win32.whl (251.9 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.11-cp312-cp312-musllinux_1_2_x86_64.whl (486.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (489.1 kB view details)

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

dao_treasury-0.1.11-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (507.9 kB view details)

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

dao_treasury-0.1.11-cp312-cp312-macosx_11_0_arm64.whl (321.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.11-cp311-cp311-win32.whl (250.9 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.11-cp311-cp311-musllinux_1_2_x86_64.whl (475.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (468.8 kB view details)

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

dao_treasury-0.1.11-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (473.7 kB view details)

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

dao_treasury-0.1.11-cp311-cp311-macosx_11_0_arm64.whl (320.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.11-cp310-cp310-win_amd64.whl (272.9 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.11-cp310-cp310-win32.whl (251.4 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.11-cp310-cp310-musllinux_1_2_x86_64.whl (481.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (475.0 kB view details)

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

dao_treasury-0.1.11-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (481.3 kB view details)

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

dao_treasury-0.1.11-cp310-cp310-macosx_11_0_arm64.whl (323.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.11.tar.gz
  • Upload date:
  • Size: 78.8 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.11.tar.gz
Algorithm Hash digest
SHA256 aa65265c744634b2dca5125c89a02564c260926d3dd8139bd2fd6d7f93b55348
MD5 ac33b8c80ef95c6c9c227359319559ee
BLAKE2b-256 f4f71df476680bc59014fec294b6ca6b160fa26fcb4e5274d20f3490231fe46a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 117dd77c3b85ea14ebbc95ca934ce780323742c17e88b0ff157452d94b10a4bf
MD5 5d76beb12765dde7f09fff7bce493a70
BLAKE2b-256 ff898857b051a7a0b1245fa0382cdc7209b77339a7eecc5eca9563e4391efa0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.11-cp312-cp312-win32.whl
  • Upload date:
  • Size: 251.9 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.11-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 086acf0fae2f11eb7a512fd16c24679f9688f120c237d33610b33352e2e1be2a
MD5 df803508ca2baee25a17d50d5de4ac83
BLAKE2b-256 8fe8733b02f786e7507308d98921f295b2626981da451950626339a527a16c4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6abcd17fbe0e8961a4ea566bd6fb649088f8e6583879c858454e57cf348dfdc7
MD5 7da8dc5e89f4dbd82031c7649e73d01c
BLAKE2b-256 0fd378ce872a1cb13225de14e1ad90885639f15252ff22b09d304804f7a6c21c

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.11-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.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d26ff8ad640b635dff4da26a2a8b05e77e6a8ea597714c411ba6e3fa197335cf
MD5 b8c4195b7f443ebb26f0c1790f127cdb
BLAKE2b-256 76e7763add5f08fd6907b4ab99ded83380d3519d28ed5229d499483f5e579e76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 fc14309bcceacf7cc8b8c26c5f393005feff9a0a4b75dfc3dc8b58e67b031dab
MD5 aabfabea9836442c409d142887b917f7
BLAKE2b-256 0659eab2973a1e835e3643c879f1542fc291f7a86e46387825bde24fd4b7fadf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a866e6d99dacf6fffc22dc38ffa19a62106b5395dedf68fad18652a28d231980
MD5 8edd1f515a9c542a89dac964462d9fe0
BLAKE2b-256 483b45fce25d98a1fecde739fad459d0662d88e98040c77c973f02daf09d1209

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0ac3bf42036a82b3d0468bc89706fb4b95aab7e87d5b8e0c161ea79cce4640b7
MD5 ac90cd9a9e84c9a0c7f1044696e6b801
BLAKE2b-256 5ed4515ce2503d463172dad1bbe92813f48fff24f02d61900d565bcca34a8fb0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.11-cp311-cp311-win32.whl
  • Upload date:
  • Size: 250.9 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.11-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d2844489dfe5879da954c9c7d63b3ae022895067ab71d742264bb6474ccb2484
MD5 cda8bd869baccc671df7ab595aaf12ff
BLAKE2b-256 6ad4dab095d9f694825ff3c17400dac371bbb36a32599342afdf2a27d41aa599

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 731cbeff9d59e3add5166f0fe61653c8d0608759b85016bdc4503f688a504fc6
MD5 cac5ab87157428318ec884a14b9a4a8b
BLAKE2b-256 ab39abe5d976c4a5f52458089d8ffa88cd88a69ff58102d772b8ee1ea3abab73

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.11-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.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db8ff2f28553bd21cc0ac1267442925393e61f82028ddb34ff3f627c42fc7fa9
MD5 130052104022771bab2caebe6e075477
BLAKE2b-256 659a0b9c8079d25ed47250a5c5bca354416ab82932632c04431edb61a9cfa881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 6f10c499040cf75e428fa0c23655a4bba6bbbee69b331e5471eec6becd5f8c73
MD5 110344ef1dcb1f6a72099bffc2494ac8
BLAKE2b-256 439f21f9752b106796fda9eb6a585743dc4e92c0a7ad927922afbea83a2afa05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33671c20f88811e4f6b687d480c7a3d11c9d456ce29023feca66e7380e80d326
MD5 5ad9e29da6191f1da7724793ce8ab174
BLAKE2b-256 f14b9288328f80edf6ca186ace2df540723d6fb95df34127872d0763b2096f72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 45d688715fe9d12535ad5d65e248ba3bf5f5849a4272810f1b119b1e5dc29272
MD5 2c700033fdd7d8cf52def03527b02b57
BLAKE2b-256 d5ae8bbabf87b6c3e2b97dbd5817f2ca30d1ec464ee32c29df99ccc7cce75afc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.11-cp310-cp310-win32.whl
  • Upload date:
  • Size: 251.4 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.11-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 11b9c15577ade016e70b2b9b6a4e106ef9f4064ce99c391f0800269f74d928e3
MD5 fa76f261699249d2f1bd56d802a1267b
BLAKE2b-256 f5451375758fb416af2eec35208d050c5e59c8954a32af2347c45949e0091526

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b43792668c877e8e9d9b70cad6b6fd57059c19dcb1f118d7b72f4fa6bc39a99a
MD5 343b9e380dd386427eb0ff783d91fea5
BLAKE2b-256 f991206506d4daa6e543d0a95e489f61ae42b31f5bf1d3dedaf95c939f02367f

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.11-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.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b85d677100f4076613ebb59c2b563f099d29bb21dd8b126cd89fe12e640dbe1
MD5 eaea3ade5c9252aa63634827bf76a0e5
BLAKE2b-256 456c30cd3798353f9754070150c0b946be9ebb12bf2433e688e94596f379de40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 f75584e2111c7b05932af8acef00fab366d24968a7e2df569e5960b2fbed79b0
MD5 eb7ce18408492d2f42fd637374233ec2
BLAKE2b-256 e55fe43f270bcc60d1ef13aa209da6078d346a49a77d4eee1a877e1f40095bcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46d9b7a0ca99e49d597fbda2e989b86a3259c79bfacf7a8426e48ff227d222d4
MD5 9ae0c06dfe2317b90ce154439f14d3f7
BLAKE2b-256 9a8d789062b9e3a7e4e64c69ab7841b4edb66268296bf5cead9773a0989ee54e

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