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.3.tar.gz (78.3 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.3-cp312-cp312-win_amd64.whl (271.9 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.3-cp312-cp312-win32.whl (250.0 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.3-cp312-cp312-musllinux_1_2_x86_64.whl (484.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.4 kB view details)

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

dao_treasury-0.1.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (503.5 kB view details)

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

dao_treasury-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (320.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.3-cp311-cp311-win_amd64.whl (270.2 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.3-cp311-cp311-win32.whl (248.5 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.3-cp311-cp311-musllinux_1_2_x86_64.whl (472.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (465.9 kB view details)

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

dao_treasury-0.1.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.4 kB view details)

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

dao_treasury-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (318.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.3-cp310-cp310-win_amd64.whl (270.6 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.3-cp310-cp310-win32.whl (249.2 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.3-cp310-cp310-musllinux_1_2_x86_64.whl (478.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.0 kB view details)

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

dao_treasury-0.1.3-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (477.7 kB view details)

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

dao_treasury-0.1.3-cp310-cp310-macosx_11_0_arm64.whl (322.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.3.tar.gz
  • Upload date:
  • Size: 78.3 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.3.tar.gz
Algorithm Hash digest
SHA256 95a5ca979f2ff2b9e9cc3265f2f1d917f6c6e08e59816460952b69d76e89ec60
MD5 99888d718fda892af2b7b0292d3b73d9
BLAKE2b-256 58993e14a31da0ef11c72238e642b56bffd0359571a6f76e465850d59f02cfd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 91f59a291b23a4f138ed67a8b651d982b9474d92667693a6b82af9b80f837c1a
MD5 f1244c03a613425f90a20cc8efe97f1d
BLAKE2b-256 8f8424433c3d5dd361c6f3427347886a8449c664fa6fd4dff2853da0b945b6eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.3-cp312-cp312-win32.whl
  • Upload date:
  • Size: 250.0 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.3-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 8a02c2f2c6f3b1c1052387a7621cf17e65c9cb4a99767bfa1859eb9fe1690278
MD5 70d3fdb03dad7962a774b602dcdbb818
BLAKE2b-256 f02dd9e2d80f0be174155df4adace1853d52efaf5c36e1b6de65f8e5bfd11b8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2244b35bae67c8d9b73b74dba180457178c0da1d62d1fa93dbcdac007eacf099
MD5 783e7a7b9a868f6bab5963b81da6d08d
BLAKE2b-256 8ad52bd15dccaacd749698b3f44066a88ec9994c4f8e4cc810a69ada25670a14

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.3-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.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3122b18dbecb71c3539aa5542e10b9cda6e362100bd9ba107ab8821359e5c3c3
MD5 4123b9cce2451eb7fcc6767b794d222b
BLAKE2b-256 78ee0cb4ebea30c6681cfe664636a61074ae078859ef165fe27caa153b4efa5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 afb86464b4ab7740f5e18df41c5455ae1a09d5c193f675c5ba9d955796e4f45f
MD5 584096ad9f22fedc38e07840743aca9c
BLAKE2b-256 1d7de914f1cfd6d8310c67cee1ee8607984cc777f9820c01deab742e5cc2773b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd76c26c1f8724f21cb151d51894ba4fb6dd7a371207a07b5614467232da0e04
MD5 f48be7fa833e46bad04383ecf496ddc0
BLAKE2b-256 df4790007625246f84eb44f5cd990d82c03321861f44c5ee0733dfdce13892b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4cffdcf7fe5a5ae3212016ab9e434e63cf5dc0cf3d4238189a52cdbe49537ef2
MD5 277948f02af2d1785d13756795d9ce4b
BLAKE2b-256 20b29e335acc1537bd8caae96c303982ae9b817369ad5bf11034728167d93398

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.3-cp311-cp311-win32.whl
  • Upload date:
  • Size: 248.5 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.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 2c951290829323b7879132bc4783c05e2bba44a86d9d6ec6835652a71ef4e9d3
MD5 0bf22e335b1f38cc821c6259f40b9b80
BLAKE2b-256 2de32f46a6461d1a97a45402c8aff8a44b494af4a5a900a7a510c7f0cb27f120

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1dbfb162895389d71e409640037c1ef987e216744c0666146c1a86ad089f61ae
MD5 dc4838ce1096976567cc22231597ecc0
BLAKE2b-256 24d7ff7da37f68610770e026b03563d2b5496de50f44a9801a8465c85a3f62f2

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.3-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.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3858bf8730279aeb481fc249cd11042bfcbfad064999e17e08963781464f3bd9
MD5 6f9a84528ff088379188cfa425e52550
BLAKE2b-256 17345b12489164ecb102d77fa0ce1e213a03add34c29cb69ada245de7c4f967b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 9b2516ddea9dc495ec6d05f9c82c332c8fd4a1e9092b94350362ff0e7bb41a54
MD5 b7a2996d8e7f77d212c12e4f3fdd5e48
BLAKE2b-256 e265ff40c7d75a999aceb33e5aa47948596eecd1512ce2779d570d220c913270

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e88c666130672876df619f15ec02729813cccfa9d919889e6302c3c3a5ef5a76
MD5 a1f3748f27fa2772b9cb2dac985a21b4
BLAKE2b-256 d51a11081a6fee17540f8fa47a12905036108b81bf87571f3cf10cec1da2510a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0410b63991d197a045d52cf10dab396be7a83e31234ba3d84d66b1739123559a
MD5 1934f9c52ba0e333046e33da468d4118
BLAKE2b-256 3e2f14eb8d3653d6f0883d2b6e20d57d5384a0a56455bb53a4225cec51ca5581

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 249.2 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.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 35a515c0d33d4bff5cd975f4e1f64d289947926fd490dfe51c72b34a6a851c93
MD5 ad0135373f1677bbd7d57c0c8038e607
BLAKE2b-256 b1b775c9a62c34a207a8c36779d5dd14ef1386fd122df23261b1d3de9fa732ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a67090be9cf6210fa2e80d34ec9bbc26e975686def7b1743213660af4df1d807
MD5 c1300ef0a99f587f15a5399123776894
BLAKE2b-256 021e3c7790c0859343e6df4821ea983dd6b20095fb11b41a2f52643acfda52a0

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.3-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.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ecdf0a902eaf2b4c445b85025cb97e0ff330bfcb54532576077ddaf6dc71206b
MD5 a744250bb17edc8b95a0e8784b6ae5b1
BLAKE2b-256 06bf22b14c8d4a5d3f1d83c2dc4a24ff9bd198fc0cef86ab0e50f6fb59569c25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 bf3d67def254ef3dedef4da59afa01f5758f69060b122902c15ffbb5071a2059
MD5 5d1fe27517c933c15447a2316702ead1
BLAKE2b-256 cb837db3e587242b8b501291ade65d5579a8ed5b0094443876917d1d794d2e11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16d720943e69004c5206f2b81a1e30308f75757ec229c8153df7ab022b072caa
MD5 db74f3f919bee027551c61aa71fe12d2
BLAKE2b-256 3ed3f98fc8d66fc74ee461efcb7312d302923449992385abf20efa5ff21681d1

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