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

This version

0.1.7

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.7-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.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.5 kB view details)

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

dao_treasury-0.1.7-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.7-cp312-cp312-macosx_11_0_arm64.whl (320.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.7-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.7-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.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (319.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.7-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.7-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.7-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.7-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.7.tar.gz.

File metadata

  • Download URL: dao_treasury-0.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 ba91ced7734bdffeb07efc9edd6a1e951da24e554cc6c85149f9e91009826796
MD5 555306504428afc7b0184f935da153d9
BLAKE2b-256 925bd0fb25278289e0e12951f63b9de53408afc845b8bc91bfee82594e6b6131

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ccb73b1e7620a5aafcc73809f32cf52ae50980332c78b91d2a19015e53db28f7
MD5 dae75924e88eda01927d53e89fdadfb1
BLAKE2b-256 4493fde4c107499172a574a82110353241f839240cff27c7853d8cfec473361d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.7-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.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 82c938a719311988e3368ed8a8f78e756f8dd8433eed9a23261393c1ff1daaf3
MD5 44e30c0f1bfe01af0a8681a1284f9e3b
BLAKE2b-256 23b27c753ab96c817891399e666783da46126d8cf2bb0773e557b41734fa09f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e30c124803fd273d076af0e4682403ebf41d84524b92a86d95e40ad5f6cf34f
MD5 51b8d5b40f62b55a097cf2e2d71fa7e1
BLAKE2b-256 efc30704efd1964266556b487703c38af537a71d807020c6534679eb78251a7e

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.7-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.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 225bda305face1c6d41999b6af801372caa9ab6f1e62ad5d4b34fc93636239c6
MD5 5e0270fe4721956db5734ecc86a5988a
BLAKE2b-256 b856b6537cfe1d5ec0928452b8d5044e2b68a252eb7bd8d4841bf1f7089c0c7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 75d4e40aed7f534f845e5aff6284d5b7953832d769f04ed2f1f8a53bc626e395
MD5 f989a69e09992c275fff6185ef0a9d46
BLAKE2b-256 1b9866ef549d195670c2e3a42a179bd68a73f54c99aeeef8042c41c4ff8ee048

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6f11c19f707cc4b9658fdc0078f80be87e4a32411208fe5b1fbe3232c81e478
MD5 cff0f65acd81f584d3e6cd648b21778c
BLAKE2b-256 d7fc7e91ce11ff13c1c4f6b4ddff1e354e4b4d94be19755ffbaac5897c9e4202

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8423d2687a4c2c0a59f7568478c82d8b147c33f26641743dfd375850783d1a91
MD5 4fa65033ddbcff812f7ab73548c68867
BLAKE2b-256 183da351c6383b3a8d063b45e0c8fbd58bc71cbc575df255b2a792afe579fee3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.7-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.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bb6f7c8dec3bf5ae73899c84de60c7e8c633c9e82fd21745d8fb66965e342b4e
MD5 c1cf55c68417d94e48ff2dcac3cfae60
BLAKE2b-256 4f9d01b3886e0bb2513584a1918d11f7b2c059debe13a90ab19dc1c0846fba07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 39ca9383c93fc32c1e808112149f8ff2f0fa5101ffbe473ed70e8975933ed527
MD5 85616664c338e2840d4bd918026d7e48
BLAKE2b-256 15ed6991d3fc58d03ae36b117d2d30b510f6873e8bc8d44dc2bffeae4fad958f

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.7-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.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ae9f48f48c4ec01ba5b8c7ff3426dab70bad5dab8424ed0bb0e4303e2222c5d1
MD5 e0af073bb63fbb96cd20021f382bee6c
BLAKE2b-256 53972d676b669ee5b29882d0390e328db893ac8bad3d5b4f1c0ecc261d956d49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 415fd94dd34d212e20c01e90c72293ef9b800cdaa3df3d7da867e45b7ee8d14c
MD5 9ace2ec3220c02ba1afadb2f9584897f
BLAKE2b-256 254d24508c994c73259118bdaaf3c9d84c5bd82bde7cb8bfd87b4e6094498d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3af2a3304d65baab99c09370ff245d34bacd5110f8be281f85ad7efd8e89a85
MD5 a5154583cce9d80a4a2ceab885252f42
BLAKE2b-256 7417b5d5dff276bf0372ef639aba118d029a800566206dc24985862e1bfb3be0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 448515e4900f3acd6c5891b2c21245bb4d80fc57a2378816a9e82e733900ba5e
MD5 9f62fc92faef32444b126be01935ca4f
BLAKE2b-256 022ba934aec125fd33096132150fec11b21328557f4051809aea5367e5542cc0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.7-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.7-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 747368c57196eea0f0c9e772a2f974fe47ae6321cdf31294426597094c694a50
MD5 fe1b9afc82a26e377059fc025200e3aa
BLAKE2b-256 0b57e04a497403d322d08ffafac48465c45ef6018c17f146a9f715c46d09e654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89046b48b00d873d99a6fa1e75a2e8a8a670fa699be723530d8b01965d62d87c
MD5 bd14cc8288b8058f76d5097d09893c4b
BLAKE2b-256 76b5f07a1ee76b7e93b35997b6f5938878b836807e64fdf494f174f842dc52c2

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.7-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.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7160810973fbd46937e5b3bcd8d35eb9513bdbf66e4d180b63460fce3ce3cb89
MD5 ba2cd5ee0a339a3de93dcc7c899ffea6
BLAKE2b-256 3e2c94d59a9cdbc91ca01dba2dbfb071fcd58915ecb65d78a0ea8cf5dfc5cc48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 7e6cbddfdda6fcc8c00608fc7714d3513ea8db626b7ec8b524dadb5a013d503b
MD5 0df3e637c961a299c13dddc623a19a24
BLAKE2b-256 1013a3f3985f4fe82ff6507c4ad4758057944a2e5effd8b6f02c09e8dfee5034

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5810cb80fe3ea5ba3e1d7317027e28656424f4030e4597e3117111c5143f6f1e
MD5 77dd4c6962892c86f13da6071cedd8e5
BLAKE2b-256 cec8e5d8f2b95ffdf617a5eefc3b38608ad55b9b9789631f339cf8ed03999b92

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