DAE App
Apply the DAE model
Last updated
Was this helpful?
Apply the DAE model
Last updated
Was this helpful?
The DAE app is a decentralized application (dapp) that implements the DAE learning model. The application consists of three components:
the user interface that allows users to create courses and manage them;
the voting system, which allows stakeholders to create and vote on proposals;
the contractural logic, defined in Solidity smart contracts deployed on the Ethereum blockchain.
The DAE app, developend by Andrea Antonutti and Luca Donno, is currently deployed on Sepolia, an Ethereum test network. Here are the relevant links:
: the GitHub code repository of the DAE app (including both official and developer versions)
: a pre-print of an academic paper about DAE
As a first step to use the app, a user needs to connect their cryptographic wallet and sign a message to confirm they own the private key of the wallet.
Next, the user can create a course and manage course teachers, students, credentials, karma, proposals, and voting spaces, as well as a dashboard with basic karma statistics.
In the following, we briefly describe these possibilities.
To create a course, the user needs to add some relevant metadata:
name, description, image, and website of the course;
media channel: an optional virtual class, such as a Discord channel, open 24/7, where students and teachers can join to further discuss the class topics;
Magister base karma: the initial karma of teachers. It is a constant non-negative integer;
Discipulus base karma: the initial karma of students. It is a variable non-negative integer: student karma can change with the base karma as a lower bound;
Snapshot space ENS: a registered (ENS) to manage the Snapshot space - where proposals and voting happen - associated with the course;
voting strategy: according to the DAE learning model, each user votes using their karma tokens. The voting strategy can be either linear ( votes cost tokens) or quadratic ( votes cost tokens).
Operationally, when a user creates a course, the following operations are executed on the blockchain:
the karma and credentials smart contracts are deployed on the blockchain. Hence there is an instance of such contracts for every course;
the admin role is given to the address of the creator of the course.
Teachers are identified by an Ethereum address. When a new teacher is enrolled, the base teacher karma and the Magister credential are transferred to the teacher address. Notice that only the admin of the course can enroll and remove teachers. Typically, the admin is also a teacher.
Teachers can enroll, remove, and list students who are identified by an Ethereum address. It is possible to enroll a batch of students (loading a CSV file) in a single transaction. When a new student is enrolled, the base student karma and the Discipulus credential are transferred to the student address.
Credentials are badges that certify an accomplishment made by a student. For instance, a credential can be given to a student that reached a given threshold of karma or to a student that passed with success the course exam.
There are two built-in credentials:
Magister: a teacher of the course. It has the following privileges:
view the course metadata
create a course
enroll and remove students
create, revoke, delete, and distribute credentials
transfer karma
create proposals and vote for them
view the course karma dashboard
Discipulus: a student of the course. It has the following privileges:
view the course metadata
create a new course (becoming the admin of the new course)
view their own credentials
view their own karma
vote for course proposals
view the course karma dashboard
The built-in credentials are automatically created and transferred when the corresponding event is activated, for instance when a teacher or a student is enrolled. They cannot be manually created or transferred. Moreover, additional, ad-hoc credentials can be created. Users can transfer a credential to a single address or to a batch of addresses (using a CSV interface) in a single transaction.
Technically, credentials are non-fungible soulbound tokens and karma are fungible soulbound tokens. Both types of tokens cannot be transferred once received but they can be burned by admins and teachers.
Snapshot is an off-chain voting platform that allows DAOs to vote easily and without gas fees. Votes are cast through signed messages generated with a cryptographic wallet and are easily verifiable online (they are saved as JSON files on IPFS). The Snapshot space can be highly personalized by combining different (up to 8) voting and validation strategies.
Typically, a proposal is first discussed in a forum, like a physical or virtual classroom. If a proposal is sufficiently supported by the community, then it is formalized by a teacher on Snapshot. Finally, all stakeholders can vote on the proposal using their karma tokens, and votes are tallied according to the course voting strategy.
The dashboard contains some basic statistics computed on the karma distribution over the class of students, namely:
min, max, median, and mean of student karma scores
standard deviation and median absolute deviation of student karma scores
the ratios between mean and standard deviation and between median and median absolute deviation
the student karma score leaderboard
If you are using the app on Sepolia testnet all transaction fees are paid in Sepolia ETH. You can get Sepolia ETH for free from a faucet, for instance:
In particular, admins and teachers will pay fees to create courses, enroll teachers and students, and manage credentials and karma. Students will not pay any fee.
The DAE app uses to manage proposals and voting, which is integrated into the app interface but can also be accessed as a website.