Video link ->


The aim of this plugin is to spotlight the problem of fake news spreading on the Internet. It seems to be an increasing issue as the number of information on the web grows. It was visible especially when the Russian invasion on Ukraine started. Q-Rate wants to fight this problem and give the power of deciding what is right and wrong back to the people.

What it does

Q-Rate lets users vote with their QRT tokens whether any website contains fake information or not. The process is simple. If you detect that a website possibly contains fake information, you can report it as fake. The dispute has opened. Optionally - you can stake the initial amount of tokens and set the timestamp. The default timestamp is set to one day from the current moment. From this point on, if you visit the reported website, you will see an orange warning box in the right corner claiming that page might contain fake info. If you report a page as a fake, other wallet addresses can vote with their QRT tokens whether they agree with you or not. They can vote for TRUE - if they think that the news is real or FAKE - if they consider the news to be fake. When the dispute ends, the number of tokens that addresses staked for the losing options are redistributed proportionally between winning addresses. If the website has been marked as fake, the orange box will turn red with the information that the website has been indicated as fake.

It is very easy for big whales to wield influence on the results of the voting. That's why Q-Rate uses the concept of quadratic voting which tends to eliminate this problem. Voters can stake multiple tokens but each of the tokens costs more credits than the last one. It can help protect the interests of smaller participants who care deeply about particular issues. The algorithm is simple:

cost to the voter = (number of votes) ^ 2

Imagine the situation - you are a big player and you want to stake 4 QRT tokens to claim the news is real, there are also three smaller players - each one of them wants to stake 1 QRT token for the news to be fake. Now after the quadratic voting calculation, tokens staked by the big player are equal to 2 and the sum of the tokens staked by the smaller players is equal to 3. The dispute ends, and the news is considered fake even if theoretically more tokens were staked for the losing option.

How we built it

Q-Rate is a fork of Arweave wallet - ArConnect ( It uses decentralized tools - Arweave blockchain ( and Warp contracts ( - to make the process not possible to be manipulated by the big organizations. Arweave is responsible for the permanent and immutable storage of the data (contract and its interactions). Warp contracts SDK is responsible for the logic of the application as it is based on a smart-contract. The contract itself was written in Assemblyscript and compiled into WASM.

Challenges we ran into

The biggest challenge was to invent the tokenomics for the smart-contract which is the base of the application. We wanted to make it as decentralized as possible and not manage it from the moment contract has been deployed. Additionally, we wanted to make the application playable and leave the tokens in circulation.

Accomplishments that we're proud of

The application is smooth, easy to understand and easy to use. It was not clear from the beginning as the contract logic is quite complicated. We believe that our solution faces a real problem and solves it with success.

What we learned

When searching the web the amount of fake information astonished us and just affirmed the necessity for such a tool as Q-Rate.

What's next for Q-Rate?

We would like to widespread the tool and see by the end of October at least 100 fake news blog posts and pages to be flagged to protect users.

Built With

+ 13 more
Share this project:


posted an update

One update! The contract code is available in a separated repository under this link

Additionally, we had a problem releasing plugin to Chrome Web Store. We are still waiting for Google to accept an extension, its still in review. Therefore, we encourage to run the plugin locally -the instruction is available in q-rate repository under this link

Log in or sign up for Devpost to join the conversation.