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

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.1-cp312-cp312-win32.whl (250.5 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (484.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (486.0 kB view details)

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

dao_treasury-0.1.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (504.1 kB view details)

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

dao_treasury-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (320.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.1-cp311-cp311-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.1-cp311-cp311-win32.whl (249.0 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (473.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (466.4 kB view details)

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

dao_treasury-0.1.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (471.0 kB view details)

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

dao_treasury-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (319.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.1-cp310-cp310-win_amd64.whl (271.1 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.1-cp310-cp310-win32.whl (249.7 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (479.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.6 kB view details)

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

dao_treasury-0.1.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (478.3 kB view details)

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

dao_treasury-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (322.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.1.tar.gz
  • Upload date:
  • Size: 78.8 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.1.tar.gz
Algorithm Hash digest
SHA256 298bbbca2312550a6303a08504e7b5aaaf4a69da3c1a3a2ce24681939f748a1b
MD5 5e063ed92a43d47b13790a28ea20ae88
BLAKE2b-256 b30f252e47ed093dc3a02377d8238fb3d65459a00ad30490ffd70173261147ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 525d17cc3aad5e528b288721bd48e25a1ef1851817e7b1f95fc6a51e27965c2b
MD5 a95ca1838ee53d7bf3a66197d3c5bdb7
BLAKE2b-256 8486ac9926977260ae51be87fff04d75dce6ee5b748aa0168f5951b8f8463383

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 250.5 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.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 6f7424fdd26804524f3251d95c7920111346cb215458f0798b65a6f95da4e09d
MD5 dcb1a932fa1a089cb5f1137ae27b3c2e
BLAKE2b-256 e92060d1cf2828ffe36eb159b7f72bcdfb5b57d040201568b89eab2d1f0b57e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5d61e80f9bed5d857cf7cf0a0d8344bf6adafd4b5bdaf09bf96402c2782a5a69
MD5 9cb1276f2439dbbc94d981c8b055fa7f
BLAKE2b-256 7c64820bac93f0dba321c71aa4dd9561325b6c7a9adbea44c4e4e70071fc428a

See more details on using hashes here.

File details

Details for the file dao_treasury-0.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-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe6a8188670b1401db882a186bdd0180b6f7039970d7a4fecf6083e2f1c2ac65
MD5 541ab3fc8ababee27ed8c6a139b62eb2
BLAKE2b-256 d20a265ed2531d155a61cd1c4788eab4d51cb0156c77f8209a6ebd14b9dda731

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 26b57773fb2117fc4efd4086856d5f88d1a9d08180edc6e10422af6cb61c94e4
MD5 3a8a0a83989ae5c2c457d6e32380814a
BLAKE2b-256 adb85548cec668fab91046ffed7085a85c2892af79ed900bf290c11b87f0fd8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c421078738e21d6a6aa44551ba52d253e45564711d74cfb9aab5a611992e90d
MD5 90c7ae2aee4ca8a47370236f8174e66d
BLAKE2b-256 aac6f3ccf5624998d9d163c17420766db22803670d89b8dc0069b331ade1cbbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0bc082cab8360ec943e531e3ac53ba08991aee6684f14ad9208ea37c5db1529e
MD5 cb193a7e69c708fda23f130733a3de3d
BLAKE2b-256 770e5ed409e1647968486681373f83d06b74b83e5afbd90354f84f43bfdee85e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 249.0 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.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 a0e514c995607444df0af3111860e0f3503b2ae27cc19d3da926d01ed9fec2d4
MD5 adcc36680cd65a51fda0f9dbbb265e67
BLAKE2b-256 77130bcfcfdc9d74bdce71a3ddd53dd2926ba82b4452f4810a9203155be0865d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1558fef27a9b1f82c7ba1e19e43509180bc2feb0caa8af6f407277b149234b2
MD5 604b517d2c93dafbb2657fe0f0d7e4fc
BLAKE2b-256 7620db37019ba5131733505cf0d8cb927fd34fa705239815a27699bb12406a40

See more details on using hashes here.

File details

Details for the file dao_treasury-0.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-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 084c71fc1da63b214731208fcc317ac87a282be6322148436263fc8b36c0921b
MD5 2cc8a60dff1ed3ffe6f5c090d87d7c23
BLAKE2b-256 593b5122be6fe21e546ecfd035bec20ce4e8913d6afdf201997cca52e87cc32c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 5840fe91bb7b00d89cc04c60c74492907554af4d2cd3e044d39f1e9880f60524
MD5 1a7907a4917192ea3795fe81ab6924a2
BLAKE2b-256 4e9602680cdaac0da6cf76bef7b0d4872b5a22b7000cd17843791ae5db1daff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a0976bc16005bf30876847512a82ea33d3cc433ab515728c8ba8f8aa995b351
MD5 2dcba318bce09e32c8398806ed246940
BLAKE2b-256 b441aba389dcf1b5dfcd81a8155a2eb7ed2409c89280527ab4aa58d61bdfedba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ce982e83b0eeea09570a3a55d3c9dfb927cbff17bea32df7222c4dfccea96600
MD5 12e7990f1905ef1ab40e479f09575bca
BLAKE2b-256 2f89725fed3612a2746dbe1096f83f8719667d359b200ad20fa99779a8558799

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 249.7 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.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f89e07171865fca59cf61d1b51ce8cd5233240b94cd87ed08831ef7dd180a8ad
MD5 cd2bfb8e348bc2e8a1566051cf9d5f56
BLAKE2b-256 86273a8010d59066f829d790b82896dfdcd8c939fb40a05faeb5328b49e643f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 490186bd7f1344c24577e31620e496d5933a6a0169a0757a8940144f7acc047b
MD5 9d23c43cebe0a02a16079f64b855bb8a
BLAKE2b-256 d3a682dc925fca81ba9d4c725b319fee857107feaa7fab207b555336c129f276

See more details on using hashes here.

File details

Details for the file dao_treasury-0.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-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2ba1db21d2e9821c3cfb53477d6321e3d45bd6cdcf55c01a1520bdad104cb64
MD5 fb1c726006649d82748d386f17516165
BLAKE2b-256 8d63bb05bef76c7cbd16b84cecfbf8a41ab9a757b4d038f0f845fcdc2b533605

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 367dd3e76500df48696c4431291eb9cd0ac7d0f8904f97cf302b3634238df83d
MD5 439a733e531e71d32d9740ff27cda8bd
BLAKE2b-256 95004c13e23edaf547e61036050094993a0b256e6680dab9e0d138a92d96fa3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9942a7aa72e0d04af56a79c42d38f33be904aae209862b54883af8529354399
MD5 ab4902b50e4a65944d96a3932fe7b863
BLAKE2b-256 7922b0a79501c02e0de751ad1f59aedf8d324337fcb0434d99974c5515fd6778

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