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.4.tar.gz (78.4 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.4-cp312-cp312-win_amd64.whl (272.0 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl (484.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.5 kB view details)

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

dao_treasury-0.1.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (503.6 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.4-cp311-cp311-win_amd64.whl (270.3 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.4-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.4-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.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.5 kB view details)

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

dao_treasury-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (319.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl (478.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.1 kB view details)

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

dao_treasury-0.1.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (477.8 kB view details)

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

dao_treasury-0.1.4-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.4.tar.gz.

File metadata

  • Download URL: dao_treasury-0.1.4.tar.gz
  • Upload date:
  • Size: 78.4 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.4.tar.gz
Algorithm Hash digest
SHA256 262c16a841798805217b17b62cf5d71649b77fb28ec2ee33bd371be6ad1c6057
MD5 6d3962b263f34500c73c8116b749c0f3
BLAKE2b-256 b663a9489fabd9c525d05cafa294b9c38879bb56d93b10158dcbc3937672e2be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4f3fb24167bbd748a038948259ae964008c45b367c6d56cb805d5dabf5b0f60e
MD5 01ab246284cf106bddf9bdfc9007ccef
BLAKE2b-256 f6ed849345b6367bdd9a3d48aa34f39a1cf4c7448a0607d9354acd6a1775b838

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.4-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.4-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 5ba92745f49deb9df72e557bf6212f2a105bd57e1cff4f5b159a2b3306a78a86
MD5 2873d500a70e2473c04a701fc950d005
BLAKE2b-256 3479ec5c39b4dc940356d57edf13e363596066998ec567968068f40822ca1d28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7fa241752d482b62b40cab23db7326137aa10c243bcae68e6081ce58f1d75190
MD5 ba527ea50fab89fbbc6f7df4d8b7b847
BLAKE2b-256 9069d19b4636eaee4b1c777ad8d8709ab4834982eaff863c0660260a1e827feb

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.4-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.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4cbe3e2cb2317d71eea05ba09fc855b28289318c3e6784656ee89a976de44fff
MD5 189086f584e4a7d01c1bee998a18d5c0
BLAKE2b-256 cc1677bb0c405a06b0e2d5aab034810343356eb27905ecf64cbb3586b662b574

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 141f6a8eec38d710c22b7534ae565da70f05839c9735068d11c6ca885bc704ec
MD5 4377d9e31b086c399476485a4ba513e1
BLAKE2b-256 e2b4d1169d6211195a8685901ef5df150ecaee087cd64804a317d4df5a918c5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef62824cf762a2ab45047ae648bf5d08dfb3c2b116356301aba9df714fe9f295
MD5 2d36f2fea7d9291c3093fa07aeee1432
BLAKE2b-256 f913bedaaa183f76c5a73032cad9b81c547f6f43e5b509a0bb9f446967ea0da8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3ad60bbf780b306d6ecb9589a79913bf8afac07769a21d0cc0a2a1ab70d2b833
MD5 42a2b81ab54b9b7f115796f8d4dc31b4
BLAKE2b-256 fbd35a2bae6b211cac64a09ed1ce0ae41c5ad9ddcb90266e1afe47dd25120568

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.4-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.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f2395c7db419883ec10b22e7d57ce0f684468944d34ad11959632f8cd6f066cf
MD5 b6ced9b55f670ec28b261359543f92ee
BLAKE2b-256 3c53aaa4e9111b8c179b25f9112ccd92d064840e5927bc965f293b44abd7e2cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5f767e5bf9896252bfd59dd37935f03e9dd5051c06af7f47c2718fbd8bb72601
MD5 a06fad7418b353544b7ac86ab890ea8f
BLAKE2b-256 b4adeebaf0d54fcd16170386c710aedcb6aa8cacf0a6363b9088d4fd1c4b11f3

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.4-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.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c43873d952c2167807a360c2c461532d97bee1dad2e77859a63abb6e555c59e6
MD5 82d5c05351bb26678793472d347fe259
BLAKE2b-256 f7762466bf27440aa56a5bf829b3f17c65f60474c8921767de9a882ce94c40b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 2ad12413f0e9c210b1198e8c387507594477b4cf920d498018b441ecb43ce896
MD5 3f153f5f306e2cb5a6eaba696c539883
BLAKE2b-256 27261aecc28afde9d1b16422883e03a108c942248d9de265f4d02ee38d1fe936

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a817ffa949f0a4aced087a0a6287b060f01132f4970095f13c001a20ebae740c
MD5 e2d943aef8cff845c84a2c25cd7bb7e2
BLAKE2b-256 4024250546093c4631f7920405ff30089e464eeda602be44e5dde28ead65a632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 79b4e6fb7db1de28f70889e3469add7b2e9cd8566f9dc2f47fb153fc53150f83
MD5 772c53ab331c98f5fe572173ba1d3b7e
BLAKE2b-256 5bd72dfd1c85a21dcd29628e2aa51b28fd37ce9ab20d6b250a5a45abbd537c39

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.4-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.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 33c872a374e3b8af78171b723d2729356d6f90860133839efa6d6cb280fd53da
MD5 9ad432e13f3303a9990eeef348001236
BLAKE2b-256 4146e641dae64c7d4374f26d32b19c9b8e307b0181fb17ec3b0ebbea9dddaefc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58493bdcc59326d1bb5edafbc251fe41153a84f8d04d5804b7ffa09c9249b116
MD5 ae14b60e6c036c18072fcda7fb8f7dab
BLAKE2b-256 d2db06f55213dc97eb4de7c3076a42caaf6d29e0d66ff52783696c6d1a6f7ecb

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.4-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.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 383770ce73592d37cb4585f37bcbcb68bbe92abbd6ce12417103f24846f13ee7
MD5 e93203185241e8c8ffa0123be54beefd
BLAKE2b-256 0ce680c647376459bffef6492e581cfb840c7dee620893ad276f19676a541501

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 2153f2a1d888681ef53de83791cad838759d6cb76609033b067b1fa605cb0fff
MD5 2492bbf92e81565f6c1f09b61df5ab0f
BLAKE2b-256 23e8a111c84de0f495f2a6c51e784b9631441c58dfd86e21824fc992898a84c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c79b4066218b5ebf683a98778e646294faabc03e4e65b5cda5b5be9d24e102ed
MD5 8cf4642de8309788b685e7a9e6092546
BLAKE2b-256 786a20cbad875fcaf8960e9ac0c4f2a32f291b71a7fa99fe5d450f8323285b78

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