ASA Stats Permission dApp | xGov
ASA Stats Permission dApp
The ASA Stats Permission dApp repository at https://github.com/asastats/permission-dapp/ holds the code used for the creation of the Permission dApp smart contract and its deployment to the Algorand blockchain (Mainnet and/or Testnet), as well as the code for the population of its Algorand boxes associated with the ASA Stats DAO governors and ASA Stats subscribers.
The Permission dApp (that is deployed on Mainnet - https://allo.info/application/2685515413) is responsible for managing access permissions and tracking governance votes. It functions as the central authority for feature authorization for ASA Stats subscribers and DAO Governors, while also providing the foundational framework for all future DAO voting activities.
Background
Our DAO's story started four years ago with an Open Letter (https://github.com/asastats/dao-discussion/discussions/1) and has kept growing, all the way up to our latest update. Along the way, we've welcomed 141 governors into the ASA Stats DAO.
Every official document we put out locks in the exact number of votes for each governor. We keep track of these "seat votes" as simple JSON files in our Permission dApp repository. Here's how the math works: a governor's vote count directly translates to their permission value at a neat 1-to-1 million ratio.
If you're subscribed through one of our dApps on Subtopia.io, you automatically get extra features based on these predefined permission levels.
And until June 2025, everyone who joined our official governance staking programs also enjoyed bonus features, with their permissions handled by the same dApp.
Why It's Useful
While ASA Stats uses this dApp to track DAO governor votes and permissions, the repository can be adapted by any organization seeking to manage measurable internal statuses. We are happy to assist others in adjusting the code for their specific use cases.
We've also made sure the project is robust and easy to work with:
- Comprehensive Testing: Everything is covered by unit tests, and we run extra security-focused tests on Algorand Testnet.
- Continuous Integration: We use GitHub Actions to automatically test every single commit against three different Python versions (https://github.com/asastats/permission-dapp/action).
- Full Documentation: The code is well-documented, and we automatically build and publish the docs to Read The Docs with every update (https://permission-dapp.readthedocs.io/en/latest/).
Proposal Rejected
View the discussion
Upvotes 477, 480
Abstains 2, 489
Downvotes 1, 914
xGov Quorum
Vote Quorum
Majority Approved
About the team
Ivica Paleka is the founder and core developer of the ASA Stats project.
His professional programming career began in university, where he developed desktop software for financial and inventory accounting. In subsequent years, he designed and built a wide variety of custom desktop applications for clients, including accounting systems for cafe bars, retail shops, currency exchange offices, and ticketing systems for bus and boat travel.
After a few years, he transitioned entirely to Python. Since then, he has developed desktop applications using Python wrappers for GTK, Qt, wxWidgets, and Tkinter, and has built numerous web applications with Django.
More recently, he successfully brought a long-planned project, the Hopemeet match engine, to production. He also developed arrangeit (github.com/ipaleka/arrangeit), an open-source and cross-platform successor to shareware he originally created in the 1990s.
Before devoting himself full-time to the ASA Stats project in October 2021, he authored several comprehensive tutorials for the Algorand developer portal, such as:
- Getting started with Python Algorand SDK and Django (https://developer.algorand.org/solutions/getting-started-with-python-algorand-sdk-and-django/)
- Create and test smart contracts using Python (https://developer.algorand.org/tutorials/create-and-test-smart-contracts-using-python/)
He also created the Algorand provisioning repository (https://github.com/ipaleka/algorand-provisioning), which contains Ansible scripts for deploying an Algorand Node on all major operating systems.
Additional Info
This proposal builds on the successful work of the previously funded xGov-70 and xGov-141 proposals, which secured high availability for the ASA Stats API in the previous period. The primary goal of this new proposal remains consistent: to fund the ongoing development of the ASA Stats website, mobile app, and the Algorand ecosystem's only portfolio tracking API. Utilizing the xGov system also aligns perfectly with our core mission, as outlined in the original whitepaper (https://www.asastats.com/whitepaper.pdf) — to gradually transition the entire ASA Stats codebase to open-source.
Adoption Metrics
- The Permission dApp repository was recently published, and we currently lack sufficient data on its adoption beyond its fundamental role in the ASA Stats project.
- The Permission dApp update script, run from a dedicated permanent SystemD service, checks for changed subscribers' values every 10 Algorand blocks.
- Data for a total of 141 Algorand addresses is permanently locked in the dApp's user boxes.
- A total of 1630 staking programs' entries had been collected and evaluated, from a total of 407 Algorand accounts.