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

This version

1.1.2

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

dao_treasury-1.1.2-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.2-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.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (331.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

dao_treasury-1.1.2-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.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (484.3 kB view details)

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

dao_treasury-1.1.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (329.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

dao_treasury-1.1.2-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.2-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.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (498.5 kB view details)

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

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

File metadata

  • Download URL: dao_treasury-1.1.2.tar.gz
  • Upload date:
  • Size: 79.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for dao_treasury-1.1.2.tar.gz
Algorithm Hash digest
SHA256 229ecfe2d921e549cc3d196174ce430808fdf44964b0f601d651a4813d6680f7
MD5 6ecb7125505df51e2d2f01187c2fd626
BLAKE2b-256 c461771931acf5b31956b8757f37016a0ef645ef821c281b5ec568550884f287

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3c805b5c9f0f418d576e3cfed32184662b61f32c1317102a172abb2e25aff4b3
MD5 a489099f3f449d9870c0b2a1f12548c4
BLAKE2b-256 9b60dbced7e67ffa969ed40f8a55fb71ff28d31258ef9e74855b045f214ba1a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.2-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.12

File hashes

Hashes for dao_treasury-1.1.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 cd46884d913a82bac1f5547f6c3d9d1d9a1573f9c1af0d1bf8942b3d31464496
MD5 1266367418d05c7280203d12b4e89eb3
BLAKE2b-256 86784dec2b6065b6df75a8435ee9e2095c04591ba1479400ae04db26c76a43f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e334a9eaed7238176ad685c9f0a926682c5083ae5585c76be5cc2fe27bbd3aa
MD5 7f2197a66868692eecc3d0db08fd627f
BLAKE2b-256 b5f04b9666ac47e84e90ffe584c0337878753352d2e3c8bf35be1be5ad193df0

See more details on using hashes here.

File details

Details for the file dao_treasury-1.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-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad6c1c855db5a369b8e2e1a9cf69079032a15c89753a8bd058010413bb3d3c66
MD5 d477fa873fc7e59dd8bbeb5b8a8a505a
BLAKE2b-256 35596144e1abdcc604642a3edd2beaf57bebbcb19e5f0a3d20cd2e1c95872bd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 583a9e16d18ba5113f12a129fc67da4f15f980fd7217496f51f9bebf2e7de17a
MD5 af5d3320fb24a331e866d2e2f9cae2ee
BLAKE2b-256 a2398101888607e3c8f2e0d9b2c0e2f9ba613c65be92a206f7e0a3c10bc32a2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd7c73ce82fabb7a380f07828ce71e5bbac5a8e83be75425018ac7d0a4ca94ec
MD5 6b9463a57af7fc0e6b8fc2bff62e1d1c
BLAKE2b-256 1a0574c07ef012314087a06b5fdbd6409565d76c2e188e81072784d460f1cb03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 390fd7e938edcbd054e8830bc0ea6ccb05244063c2fe005909b9a00abd9ff44b
MD5 9586d5e7de5b6cc1917684ce6fc09516
BLAKE2b-256 18c0b6d910d32888e954607457fe39f1ed2d0aa640c18621f96781800cd1e09e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.2-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.12

File hashes

Hashes for dao_treasury-1.1.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c6d7bc113bc67c994fbb6a7cc07876a144cfbba34ae391ce6fb47c79b81dd5f0
MD5 1a5f4c0cc684401379078c0ebd8ac06a
BLAKE2b-256 1a5f0377b63f8ac8909b0bd37bb1e943490d81b15753a87c4a270833fe921aa4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 433f05f11453f51055da85b8e297388f1866134d5a6a24c06269affd293a490f
MD5 488a53f5e33a1ed274a4f3f13beaf78f
BLAKE2b-256 0254b3278700b569aaa94f5982659f08fbbbfff134045c08d479fcac55fcf8ac

See more details on using hashes here.

File details

Details for the file dao_treasury-1.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-1.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e78ce12542c499e898663cee182c4af3b98c875dc0aa39b079df2a89d293acd
MD5 20d2d065ee21d7766bf65beca4d652ad
BLAKE2b-256 90fb0640d217eac83b5a10b939346136820251eafaf3d648eb680729b4d60e54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 926caeadf13665adae09bd97f973ef71a2791b05d5b096b79cac0bcce4256276
MD5 f7147d1b542121377aa5cc85c54d594e
BLAKE2b-256 78e9b8e44ff9196e9477e756399f02929b0f2c2bd65fd275323780b0e952acb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e31ec1658a9a225995197c3d25ec8333804e4398f3aff6d3e2724a3f1d541e5
MD5 ce437afcee7087949c2758aa06e7bbb9
BLAKE2b-256 92ce78d232f1833ebd7dc426504aa62b9a1d9edb4dea7c1ef8fd90b47ed6eb2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c153d20178827ec6c32b2ebbb8da8a84b67d2f9b09e11cef1d0b325c1e4cdb61
MD5 35b86dbb602e1ba8b1e07ab303926557
BLAKE2b-256 1c770aacbff347f098f51279b2e4991b0140b443dfe221ff010868ded84ee13c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-1.1.2-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.12

File hashes

Hashes for dao_treasury-1.1.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ec2dd8c4cba25bd7d0bd95c557521f13e262c589184b55281425668fc86e16ce
MD5 1d28fdf1182fdc038fbf3f8c41b9b1d7
BLAKE2b-256 8712fbd3bc7aa98defcac7f9315505cedf464d95afe48e355a0be6eb4d1c7c06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b209d9bf95ea862368ee89827010e4f6b9fa121fb43aeb939072161223c121ea
MD5 7e0826e18cf970c7b926296e26e486da
BLAKE2b-256 4297d745851be1d9a6722d6c72128ed014e0d1e96ca816103023430fb877b115

See more details on using hashes here.

File details

Details for the file dao_treasury-1.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-1.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a70a4393ccdd61f8054d0660aa1871bf2acb2f8f2dbf601389372511e394ed62
MD5 c7535262d3fc23b0e8911a5a2f439de5
BLAKE2b-256 f398dde223997d31a3186fc44f38ff7b09d594a05ddfe93b797129866468eec2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 a5aa62f2acfc1322a9e6604d692402ac82f1df2ae16296af2bf9bd08b8240dfc
MD5 5b4082c38ef0996f62c644ac985ad432
BLAKE2b-256 9fa1a918e359c7879da55b6823912ea43893759e674bc812831c13bd5092f9f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 810d39cea631e3f6685cc90523fe1d9ea51c240953a6d3e132a6e1f0a7445049
MD5 c4c92e1959071cfc7d494a2b0c960433
BLAKE2b-256 3bdcd8b5af8b3a63e5d10d0e6c2ec4db20b332b10cbfd8b98af8075f3393100b

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