Geo Web

A digital land registry administered with a Harberger tax structure that can be used to create geolocation-based web experiences.

Demo Video Live Demo Source Code

Description

The Geo Web is a new distributed web experience designed for an internet that pervades the physical world. Instead of a network of domain names, the Geo Web is organized with non-overlapping digital land parcels that cover Earth’s surface. Owners of Geo Web land parcels can anchor data, media, and digital experiences anywhere within their land’s boundaries. As users move through the world with their smart devices, their location is used to frictionlessly resolve content via a Geo Web browser. Browsers can be developed to support different hardware like smartglasses, smartphones, and smartwatches. New schemas and content types can be developed to support applications spanning from simple notifications to live data feeds to micro apps to augmented reality. Digital land parcels ownership and content are maintained in a registry smart contract. The registry maintains the basic spatial and non-spatial characteristics of digital land parcels. You can think of it like the DNS of the Geo Web. Our current method for defining land parcel boundaries is to use geohashes. We’ll continue to explore different methods for land definition (geoJSON, Plus Codes, or H3) to try to maximize scalability and efficiency (i.e. gas fees) of the registry. Our digital land registry solution could be applied in other contexts outside of the “real-world” Geo Web experience like in map-based games, Million-Dollar-Homepage-style experiences, and even registries for physical land administration. Our core Geo Web experience is administered via a Harberger Tax smart contract. A Harberger Tax is a market structure with two basic rules: -Property owners pay a tax based on the self-assessed value of their property -Anyone can force a sale by paying the owner’s self-assessed property value These rules are implemented and enforced via a smart contract (the idea of Harberger taxes applied in crypto has been around for a few years, so there are existing implementations that we can leverage). This elegant solution allows us to administer the digital land market globally with minimal centralization. Harberger taxes encourage allocative efficiency of land (i.e. it discourages squatters). The person/entity that can produce the highest economic return from a land parcel has the ability and incentive to buy land and assess its value accordingly. They’ll pay proportionally higher taxes that can be reinvested in the network and to support other public goods (via a DAO or non-profit organization). We believe this structure can help create a healthy network of content and experiences with an egalitarian economic structure. We have also built a registrar user interface (the Geo Web Cadastre) to interact with the smart contracts and allow users to visualize, buy, claim, and manage Geo Web land parcels. It uses Metamask for user identity right now, but we’d really like to explore other decentralized identity methods to introduce friction for bad actors attempting to leverage digital land for malicious purposes.The Geo Web Cadastre displays content linked via CID to land parcels, so is also a natural starting point for alternative experiences and applications of the digital land registry. Finally, we built two proof-of-concept “Geo Web browsers” for our demo: an iOS app and Apple Watch complication. They use their GPS location to look up the corresponding land parcel and linked content from the digital land registry. These interfaces are “flat” and for now, only display text and images. A Geo Web browser for smartglasses or one that uses a smartphone camera would open up possibilities for augmented reality and a web with depth. We think that this future experience is fundamentally different than that provided by today’s web and smartphone apps. We believe that the Geo Web’s open, orderly, and frictionless UX can challenge the app store model that dominates smartphones and all that goes with it (centralization, rent seeking, innovation suppression, and censorship).

How It's Made

There are four main components that were created during HackFS. Descriptions are provided here for each component, and more details can be found in the HackFSProject Github repo. ## Registry Smart Contract The core Registry contract (Registry.sol) is an MVP that allows: - Users to claim new parcels of land - Users to specify the content identifier for a parcel of land at the time of claiming - Users to retrieve the content identifier for any piece of land - Users to buy someone else's land at the set Harberger value Land is represented using Geohashes encoded as `uint256`. This smart contract is deployed to the Rinkeby Ethereum Testnet. CIDs are stored as strings in Solidity and currently resolve to JSON objects living in IPFS. The example content created for HackFS looks like this: ``` { "name": "Bamboo Sushi", "image": { "/": "QmQS87QduK1N3u437zYceeELbtruaK6wgWtzYZ9zhE3qsA" }, "covid-policy": { "summary": "Masks are required at all times. Takeout only.", "masks-required": true } } ``` Different strategies for representing content were researched during HackFS. This includes storing content as proper IPLD dag-cbor objects as well as Ceramic documents. The demo content is also being pinned on Pinata. ## Harberger Smart Contract The Harberger contract (Harberger.sol) was taken from a proof-of-concept described by Todd Proebsting here. This shows the beginnings of how a Harberger tax structure may be implemented as part of the Geo Web Land Registry. Users are able to buy land through the registry at the self-assessed value declared in the Harberger contract. ## Admin Web Interface The admin web interface is a React web app that allows users to: View digital land parcel details and associated content in a map view Claim new digital land parcels Purchase digital land parcels from an existing owner for the owner-assessed value Edit the owner-assessed value of their digital land parcels Associate new content to digital land parcels Search land via Parcel ID or Location Name It is deployed at the ENS name geoweb.eth/ and is deployed to IPFS using Fleek. It uses Metamask for user identification. ## iOS Browser Demo The iOS Browser Demo shows an example browser that could be implemented on top of the Geo Web. This demo: - Looks up the CID for a parcel of land using the Registry contract on the Rinkeby network via Infura - Resolves the CID using an IPFS Gateway - Presents the content in various interfaces The interfaces used to present geo-based content include: - A foreground iOS app + UI - Presenting iOS notifications in the background - A foreground Apple Watch app + UI - An Apple Watch complication that updates in the background Experiments were also done with Textile’s ios-ipfs-lite to try and resolve IPLD nodes directly in an iOS app. Content was able to be resolved, but IPFS gateways were used instead due to time constraints as parsing the content from UnixFS + IPFS was much quicker than IPLD + CBOR. The iOS app uses a fork of the web3.swift library from Argent Labs to read the Registry contract.

Team

Graven Prest Cody Hatfield Mike De'Shazer Apoorv Lathey
← click here to see all projects