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.

Debug logging

DAO Treasury relies on ypricemagic for price lookups. If you need to spot long-running price calls, enable the y.stuck? logger at DEBUG. Details: y.stuck? logger.

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)
  • --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, open your browser and navigate to http://localhost:3004. Log in with the Grafana admin credentials you set via GF_SECURITY_ADMIN_USER and GF_SECURITY_ADMIN_PASSWORD (or enable anonymous access with DAO_TREASURY_GRAFANA_ANON_ENABLED=true).

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).
    • Requires login by default using GF_SECURITY_ADMIN_USER and GF_SECURITY_ADMIN_PASSWORD.
    • Optional anonymous access via DAO_TREASURY_GRAFANA_ANON_ENABLED=true (Viewer-only).
    • Sign-ups are disabled for safety.
    • Validates admin credentials on startup and fails fast if they are incorrect.
    • 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.

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.

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.

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-1.1.1.tar.gz (79.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-1.1.1-cp312-cp312-win_amd64.whl (281.5 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-1.1.1-cp312-cp312-win32.whl (258.3 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (503.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-1.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (505.3 kB view details)

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

dao_treasury-1.1.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (524.4 kB view details)

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

dao_treasury-1.1.1-cp312-cp312-macosx_11_0_arm64.whl (331.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-1.1.1-cp311-cp311-win_amd64.whl (279.5 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-1.1.1-cp311-cp311-win32.whl (257.0 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (491.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-1.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (484.2 kB view details)

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

dao_treasury-1.1.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (490.3 kB view details)

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

dao_treasury-1.1.1-cp311-cp311-macosx_11_0_arm64.whl (329.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-1.1.1-cp310-cp310-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-1.1.1-cp310-cp310-win32.whl (257.5 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (498.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-1.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (493.1 kB view details)

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

dao_treasury-1.1.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (498.4 kB view details)

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

dao_treasury-1.1.1-cp310-cp310-macosx_11_0_arm64.whl (334.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-1.1.1.tar.gz
  • Upload date:
  • Size: 79.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-1.1.1.tar.gz
Algorithm Hash digest
SHA256 476971ab437bda28fefe9441cbc25df079dd6c0b7f83f3cf313433feca08cb61
MD5 1d5a006d81adf529043f26a1a886d96e
BLAKE2b-256 f11ec00fbe55ec015653b362af5017dba734fa57b2c0a559e736df2cae87245d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7503c01f84b117d4ccfb0355b9447c8e51a2380df1dae172a7ebc021dacddd15
MD5 cb37146444b9b4dd8dd2521d1325bf47
BLAKE2b-256 4a37c25087d052a5a43c327758c1e10885bb577650c608683cfb6e97766db369

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 258.3 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-1.1.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a1435e924c37e44d7393c8dbc8d576a2b15acb634fdb4a9b26e368106da56149
MD5 2bd2266486b284d778a840108a4f87b9
BLAKE2b-256 c88397538e604d4d2ef48ee7a74a7e1c5f9f0c897337512a5a3bf54878f09caf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ac5e7812ca5950c2dd2c7f39f921b59a084ce5178593fc0e22d2af9069e52bf5
MD5 9e5f95e8d7949ac70c6cdb923b696969
BLAKE2b-256 a1e0ec827296178d796f85a525d5219f9a24a010bffd4ea2af344c0b65d05a2d

See more details on using hashes here.

File details

Details for the file dao_treasury-1.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94b7ee2153b78fdeb6e348b6b9d02066f2a82bedb54373bbbb71d44ef057414b
MD5 e9c3f7883c962018e31c091fcd1f7763
BLAKE2b-256 5d5a9703c126a69403b46213029a872fdeebc9539a0b05418a4348d04df158d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 fe61008dc3df1f9e28f4a1e605007d041ba733f24074b718ad4c496cfa9c97ec
MD5 047835ac88a6bc61e61e46fdd030e606
BLAKE2b-256 9d017988216dc275fb3d0af0e2561e767587f170c8f996496a1f1e586333f5b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8b252f122de09e53c36ab493ccabe6eac50b787081331137a22f5c25ec361a8
MD5 949f2e641286358d50d927ba8f423598
BLAKE2b-256 96a6db6a0b2b9fc3465c3aa95e6c1f636565aa37e4bb74083adac9a49d0899f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d25bcf294531eff8b0cc1f1e14c7503ffba68d1006f314dd6b748a067a0f43be
MD5 2fab6364d2cdf640d30df8580b392fb2
BLAKE2b-256 7b1d59013950f2892cb3df1d078a9f48d9e6263e3ea2dd4e452e414d30d8dad9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 257.0 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-1.1.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 1c8ff96b288ad09f5029ba60c44b6ea0931aa1c2dacc7f44ae2a8330d9b280a2
MD5 f275ea625aac19168832f2206e92e39c
BLAKE2b-256 3bb96a0af131fe5285277169dedf8d3902e4d9eaf08adaedf24d0d1abfc8feca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 139a140c189df6f5579bfcc12a5f0b039a0095389cf9677319aa76d1cc28e7de
MD5 de481f6f3bcb934387e2097631b89511
BLAKE2b-256 7fb2445fd9b5c0960c1df44d6d032f06d4f97d6091c9eac1b431317fa1e15438

See more details on using hashes here.

File details

Details for the file dao_treasury-1.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8673c29b92549670e9edbe176865d53f462ead450910f01883d421f92933737
MD5 059c189b34481ee55ec2a5d1043c4ab3
BLAKE2b-256 322e7c25bd940900d6c0533b379fca9e2851659cb3964a8c3c0993e84297272a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 3ff11aee37b40b1bd165f53cd8727b53980cce5df7678b67083d6009c183f6bc
MD5 8cbf05377d718873f680689a7215f694
BLAKE2b-256 92c6d09045f173fbb2fe6d3e5c7f078c9b388a5fe9f8a2799b28a8485b83694b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d41f950644164f284daf738148f641761649d064416d901204ab06dcdfdbe31
MD5 aac6238318365cf8e3587b79f22c5133
BLAKE2b-256 755f039d907d77acde504f2498913ed3d064dc53d3c326ff94d2d33a74c21a35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2cfb7972fc4ca385ae44ed0d1cf933cbb896dcd2ad597c895b63c0d5b209fde5
MD5 11a8df917e116430f8617e596e122bd5
BLAKE2b-256 fc56893937db20865ecf7412b210090090bc3aec34e0a45876414dede8d6fb02

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 257.5 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-1.1.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d25bb2b7aa16157a14052214ebb08e994e460827651512b76d07197ba6e48bd1
MD5 9143bf46a20ab7918d809331fff44b3e
BLAKE2b-256 e5b7294a383e7aa77b546eb48ff39033174c6e013152697e4979f1f29eca1fdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5becd2d212c95391bc870ec5613bc2ff56fa64b96b00261ff6bcdcff0d168019
MD5 cbed2d6554a1cfad44d63e4a677c32ea
BLAKE2b-256 a5495c454006a3c2ead6cbad2cb2b743a7022d388f604ea5b5a37dc60e7d7b0f

See more details on using hashes here.

File details

Details for the file dao_treasury-1.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68f9177f26040d952a7c82024c3f162f4e65060568759a21df9164f7fa41f9ce
MD5 a5e4435332f5d97cd42fbd3dd7ebe6f7
BLAKE2b-256 448ad54aebff8a5958aa7a4a8588ea9b309590ea48d97656a5a9c7e709df0f83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 85bd57891a0a00adc3dc65fb6b9ede79e509f491c9ca6afa6b14907eb2fc4fa1
MD5 149e41a43be75bb222edcf8ede393573
BLAKE2b-256 c053805b86b5cced6ce559c0befa39ad62de8db0a6ff18d3d3c6198226dca952

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75ebcf08d94c0876f5d9df65391ce08e29ed80d15cd070efcd7c6be5858d7407
MD5 03736e2fc57f5b1db95927b8ba04f712
BLAKE2b-256 165475f19575fb80e251dca04e85dd9afb213025b33e8e5a060c0808ded45096

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