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.0.71.tar.gz (72.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.0.71-cp312-cp312-win_amd64.whl (342.9 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.0.71-cp312-cp312-win32.whl (307.7 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.0.71-cp312-cp312-musllinux_1_2_x86_64.whl (661.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.0.71-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (665.3 kB view details)

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

dao_treasury-0.0.71-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (693.6 kB view details)

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

dao_treasury-0.0.71-cp312-cp312-macosx_11_0_arm64.whl (417.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.0.71-cp311-cp311-win_amd64.whl (338.9 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.0.71-cp311-cp311-win32.whl (304.1 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.0.71-cp311-cp311-musllinux_1_2_x86_64.whl (626.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.0.71-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (631.9 kB view details)

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

dao_treasury-0.0.71-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (641.4 kB view details)

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

dao_treasury-0.0.71-cp311-cp311-macosx_11_0_arm64.whl (413.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.0.71-cp310-cp310-win_amd64.whl (339.6 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.0.71-cp310-cp310-win32.whl (305.0 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.0.71-cp310-cp310-musllinux_1_2_x86_64.whl (638.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.0.71-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (642.6 kB view details)

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

dao_treasury-0.0.71-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (652.8 kB view details)

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

dao_treasury-0.0.71-cp310-cp310-macosx_11_0_arm64.whl (418.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.0.71.tar.gz
  • Upload date:
  • Size: 72.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.0.71.tar.gz
Algorithm Hash digest
SHA256 d62b538d182296a9775780d2886ce5aded8acad47da19793c80e18ea8f343303
MD5 384c5b4d79fc89b9669b865ff7e97f7b
BLAKE2b-256 e99151a9c233ca65410a54a501448e3ee1d9e2d3266e034a483fd8a376124e82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c2a488f0e5435c569121aa2964049606e6716928e7408f2375ec291225575420
MD5 dc18f9f88ecfb3725c1bcd3c752b8f88
BLAKE2b-256 056b2fce9304c99887175a3fd9bdedbf83f60f72c501bad8954c5c55c4701333

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.0.71-cp312-cp312-win32.whl
  • Upload date:
  • Size: 307.7 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.0.71-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 e0d6b790e40ffdfe80a8adc576f99fdb95aa5b7463f1d5c98d08b5e959677ef8
MD5 33282c0c754512a1bf54501c563f1b4e
BLAKE2b-256 c27fcf4a6ca8ddbf0c108e89b49e7c52df6f74116e91f6d752da4e2df058a5b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89306aa17d3f1e6c1bf414ebb9d5903223750626b992f0d5439bdff9ef98bfb4
MD5 24758eb6218a8e77990684ddb89a2872
BLAKE2b-256 1649c1b2b4f6e742ef6c66ef89711b134ee4627aa110418fbda7b08ff89b1b29

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.71-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.0.71-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91b4793a6e5d51d5812a3f559133139b16961a7ff517840b4b760892ee0bcc4a
MD5 0519ab2fc093ddffb25d845cd3aaca78
BLAKE2b-256 104169de1a4b06a2ade4f8226d7cd6627b17f4efcdfb243f7c30130b7cad366e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 ac65b5743dbe8081025efed59293f7ce68e994b4ad6502c5036a2834ca87d34e
MD5 19b9d5b1ed5b472fa30893f2033fd0ff
BLAKE2b-256 14a0295a5dcb700143bde0229f2970da556df8a504f543b50ac1904a3a28485b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e67826f8f837e258b762f1bb456ab4ef83f29cd81e64db3cdb95819e16a8c1a9
MD5 3f2a16ab1bba4dfd2c2d18e9eea3a033
BLAKE2b-256 c6f00aaea660a230e0768204e91ec7b2bbc6abb34e65ebd59d2947d0fcfc5107

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 90a1fa299372dbdbb2caeec623ad92a1679c76419ba09fbde712e83a643081bd
MD5 b1538e370a1172d447b75148d6edb83c
BLAKE2b-256 794cac33a556d9e5e5149fde061fde53b5cc3b4bdc41d6a0f398ebba4263ca0a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.0.71-cp311-cp311-win32.whl
  • Upload date:
  • Size: 304.1 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.0.71-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 a80ec1a0b58d27ae3f2dcacb9e8ae740e72e013cf0ee074decd2532c8ef4d9d6
MD5 b575b8de7f1e56b460891dca2b3cc2a6
BLAKE2b-256 cfd2d6af26bc46d9ce339a366a4a6aaadee4afe9b8eb20afe437dca300aa211f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 51cac3123f545864066926e86f646aaa7481386c9fd8d28808e956fe164d2d56
MD5 10bb15f045b54fc96f3be0f48d0e41df
BLAKE2b-256 8d4e5c65b6b5bd8be4c5d8a7fdae179c7b3eadd18c2184b3d826feb9f7f22144

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.71-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.0.71-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6380336bd6b612feee6636cb84753643be0d1ab8c180d371064a87da72e1356
MD5 5f61d4ecd9bc2f1ce6cf275732ffadee
BLAKE2b-256 1f8eb9ffe2aef7fc801b454c38d3a149d5fa18c44e2e529bdb06657dc13d614a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 a00199c1c7ece71ec63d0d7b793d10501d6b154a34fbebb105d7cad1f041a2af
MD5 944c08a77192965dd786a9e1eec5dbbb
BLAKE2b-256 77ec0f218014a9894aed2a29ea18046911c869c16a834fa429c0c58941095ace

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b512d101f54a462f643f0a8dfde87a5318a899a5b3294394ed1850e49deae59b
MD5 c762947fe69e7b3efd1f597035a69aca
BLAKE2b-256 b03358273fd9452cbb4d116e058bfedd7fefc091cec646a86bdd6b6cc445e307

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6fadfaa7578ce1fa2878e80d6c54fd273f321a0b657339683a26dce0d9da36c3
MD5 585949f0e295529c3de21c93d4a80499
BLAKE2b-256 b9fdb0a7ed48fbb99ae77ff7378c6ae1de0a2115d9faefa797a8b9741901df80

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.0.71-cp310-cp310-win32.whl
  • Upload date:
  • Size: 305.0 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.0.71-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 acfc3f113bb5a6941fd05dd91b043d1427ef04b0459af7fcf16764575ec47961
MD5 49c46dff7f5474081026bcb7b3818ce5
BLAKE2b-256 75f3533ba37fff55a6af3ddb6e2b76cd893778faa9382852cc787f17c1149567

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 261d0d70e96e5bc1c6d35d0459c2dbe8604f519b74cd27acf580f93a5c427f02
MD5 36813996a51494925dc6850e7c5e5e8e
BLAKE2b-256 8f8e2a357907436b11aa1f9de648c5565353f715bef5bdc71d90df3583ca80e2

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.71-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.0.71-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92499cfab8585ce1217b1e16d1f3ab30fc63f66caeb0db2368652d7b977dc0fb
MD5 b5e8a9372010c757f3f771d0d7c01ca5
BLAKE2b-256 61ec7ec935e358275e57b15a73e18efc0cc533d1e19b14c6dd1959e012ebe4d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 cef0f46c673131f2c47b95e0835dfc0d4ca50e5ff86217e646a347c0516a6043
MD5 9e06b11fbe1423c1f84219876bc637a5
BLAKE2b-256 e67819a979355e44832bbe24cc78e8b8df9a05c1e69644eae7f25b0f64bd9860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.0.71-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cec7cc83eaa4feb7de3d1266f3c9dd5a6037420c100f1c983de8b6cf4c18761
MD5 57e2ae667ceb73cf5b04f3c75174a11c
BLAKE2b-256 5a4067e0bcf3b1c742cb651fab8c1fc55e91ed9118fc44ad7678aa2336c16f3a

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