Live Demo: https://www.hads.xyz
Inspiration
Harberger taxes have been a hot topic since E. Glen Weyl's new book Radical Markets and his paper published with Vitalik Buterin and Zoƫ Hitzig. It's been described by Simon de la Rouvier as "an economic policy that aims to strike a balance between pure private ownership & total commons ownership in order to increase general welfare of society." Blockchains provide great testing grounds for economic experiments like Harberger Taxes, so we've done just that using online advertisements to apply the concept.
What it does
Harberger Ads is an ad serving utility that prices ad space using Harberger Taxes. Ad space can be purchased and tax is paid at a self assigned "property value". Reasonable pricing is encouraged as each property is for sale at the set value. If priced too low (with the goal of avoiding taxes), the property could be bought unexpectedly. If priced too high, respectively high tax payments will follow.
The model also allows a property lister to easily monetize a space without the complications of preset complex advertising pricing models and contracts, and without the need to work with a centralized high-commission marketing platform.
How we built it
We built the contracts in Solidity, tested them in Truffle and deployed to Rinkeby. We're using a combination of a node.js server running a simple API backed by our own local postgresql database and The Graph with GraphQL to cache data from the blockchain. We have a static Vue.js single page app hosted on Netlify that is mobile responsive so it works with MetaMask and any web3 enabled dapp browser. We use Portis to ensure non-dapp browsers can also interact with the app.
Challenges we ran into
The Graph is great but still has some rough edges. Their team was super helpful in getting us through the trouble. Infura was lagging very bad while syncing which was frustrating.
Accomplishments that we're proud of
Using private key server authentication, syncing with the graph, using ERC20 for tax payments and asynchronous subscriptions.
What we learned
We need more access to full nodes - reliance on infura can be problematic and the more fullnodes available the better for the entire ecosystem.
What's next for Harberger Ads
Re-deploying on Rinkeby once the graph is running with infura again. Experimenting with different mechanics/tax variants.
https://github.com/okwme/harberger-ads-contracts
https://github.com/okwme/harberger-ads-subgraph
https://github.com/theoephraim/harberger-ads
Built With
- node.js
- postgresql
- solidity
- the-graph
- truffle
- vue
Log in or sign up for Devpost to join the conversation.