Introducing GeoNFTs

cover

In this blog post, I introduce GeoNFTs, a new type of non-fungible token, or NFT, that embeds geolocation data on the blockchain.

Background

We're all familiar with NFTs or non-fungible tokens. They are digital assets that can be bought, sold, and traded on blockchains or digital networks. But what if you want to use your NFTs to represent a physical location? Today's token standards are not flexible enough to accomplish this. Creating a new crypto token that can represent a physical location is needed. This is where GeoNFTs come in.

GeoNFTs are geolocation-based NFTs

GeoNFTs are "geolocation-based NFTs" that bridge the digital and the physical world. These tokens can also be referred to as "geolocation-based tokens", "geolocation tokens", "geolocated tokens", "geo-bound tokens", "geofenced tokens", "geo tokens", "geolocation NFTs", "geolocated NFTs", "geo-bound NFTs", geofenced NFTs", "geo NFTs", or "gNFTs".

It is new crypto primitive. GeoNFTs are extensions of traditional NFTs that take advantage of geolocation data. GeoNFTs are crypto assets that are trackable on blockchains yet linkable to physical locations such as art galleries, coffee shops, restaurants, national parks, retail stores, or parking lots.

GeoNFTs are a new type of NFT that can be minted on blockchains and associated with geographic locations. This means someone could own the digital "Brooklyn Bridge" or "Central Park" with GeoNFTs.

GeoNFTs allow us to create digital representations of physical objects that can be used for various purposes, including asset tracking and supply chain management. These tokens can manage access rights, track inventory, and verify product authenticity in retail environments.

GeoNFTs are needed to solve one of the most pressing problems native to blockchains: how to store location information on-chain?

GeoNFTs are the evolution of NFTs as they bring crypto assets into the physical world. GeoNFTs extend NFTs to represent the physical locations of crypto assets. NFT creators can use these tokens as a new way of interacting with physical locations on the blockchain.

Traditional NFTs cannot communicate where they came from or were going. Unlike traditional NFTs, GeoNFTs have geolocation metadata associated with them which specifies where they are located or transported. Creators and developers can use GeoNFTs to store location metadata about where they were created or transported.

The location data can be represented by a geographic coordinate system (latitude and longitude) or any other geocode form (plus code, geohash, or S2).

GeoNFTs are transportable NFTs

GeoNFTs are not only transferable but also transportable. GeoNFTs can be transported from one point to another using geographic coordinates. Transporting NFT means updating the location of the token.

GeoNFTs have transportable properties, which allows developers to create a record of geolocations and store x and y coordinates (latitude and longitude) on-chain. For example, GeoNFTs could be used to track the location of a vehicle or other assets, such as an expensive piece of equipment or valuable artwork.

GeoNFT can also be non-transportable, which means the token owner has decided to prevent the NFT from being transported. GeoNFTs are helpful when the physical asset is geo-bound, for example, a penthouse.

GeoNFTs can be be geobound. Geobound GeoNFTs are bound to a physical location, such as a physical location like a museum or a physical location like a restaurant. GeoNFTs can be unlockable by location. These tokens can be accessed from specific locations. They can be programmed to unlock through proximity to a beacon or Bluetooth Low Energy (BLE) technology.

Why are existing token standards, not enough?

While NFT creators and developers can freeze their metadata using decentralized file storage solutions like IPFS or Arweave, this process is optional, not mandatory. Existing token standards (ERC721, ERC1155, or similar) do not enforce metadata to be stored in a structured way. That means anyone can tamper with the geolocation data post-mint.

By developing a new token standard that embeds the geolocation data into the blockchain using an on-chain data store, NFT creators cannot tamper with location data. GeoNFTs become "proof-of-location tokens" or "proof-of-presence tokens." Like the token standards before GeoNFTs, the standardization of ERC721 and ERC1155 tokens led to widespread adoption.

For example, CryptoKitties helped to create the ERC721 and ERC1155 token standards and accelerated the NFT marketplaces and platforms arms race.

Why do we need GeoNFTs?

There are many reasons why we should develop NFTs based on geolocation.

GeoNFTs would give people more control over their digital assets. At its core, blockchain gives people control over their data and assets. GeoNFTs enable people to control their digital assets and physical assets better and allow them to digitize real-world objects, such as real estate properties and physical art.

How do GeoNFTs work?

Image Credit: medium.com

The idea behind geolocation-based NFTs is pretty simple. It's about taking the location of an item and embedding it into the blockchain.

When you mint an NFT from a given location, you store location data on-chain. This also implies that anyone can see where the NFT was initially located before it was transported.

GeoNFTs are digital assets that can be transferred between users and traded on the blockchain. The difference between traditional NFTs and GeoNFTs is that they are tied to a physical location on earth. This means that GPS coordinates distinguish traditional NFTs from GeoNFTs.

Let's say you own a piece of land in Florida. You can use this land to create a geolocation-based NFT that allows other people to derive value from it. For example, you might create an NFT representing your land and sell it on an NFT platform like OpenSea or Rarible.

Now let's say someone buys your Florida beachfront property for $1M. This means they own your NFT as well as the land itself! They can now decide what they want to do with their new property: rent it out or build a hotel on it and charge guests $1,000 per night; maybe even turn the whole thing into a theme park where people come from all over the world. The possibilities are endless!

How to prove GeoNFTs were minted without tampering?

The geolocation (latitude and longitude) is stored in the metadata of NFTs:

  1. Collect and send location data from a mobile application
  2. The coordinates (lat/long) are pushed on-chain

GeoNFTs are based on the same principles as traditional NFTs; they use geolocation data to prove that a token was minted at a specific location.

If you let Chrome share your location with a site, Chrome sends information to Google Location Services to get an estimate of where you are. Chrome can then share that info with the site that wants your location. (Chrome)

The whitelist sale process will generate proof that anyone can verify using a function called verifyProof(). It takes three parameters:

  1. The location of the whitelist sale (i.e., latitude and longitude)
  2. The timestamp of when the mint happened
  3. The proof itself (a hash of the above two items)

How do we store geolocation data on-chain?

While storing coordinate data (lat and long) may seem obvious, it may not be the most efficient way to store data.

Consider the following example:

struct Coordinate {
  uint256 lat;
  uint256 long;
}

All coordinates are into strings.

We can store latitude and longitude on the blockchain as integers.

The numbers are in decimal degrees format and range from -90 to 90 for latitude and -180 to 180 for longitude.

Image Credit: developpaper.com

Image Credit: questdb.io

Let's consider some examples.

The Pebble by IoTeX stored geolocation data off-chain using JSON files.

An example of the Pebble data format is shown below:

"message": {
  "latitude": 3050.69225,
  "longitude": 11448.65815,
}

The Dether team stored lat & long on the blockchain as integers. This can be seen in the GeoRegistry smart contracts below.

struct Teller {
  int32 lat;          // Latitude
  int32 lng;          // Longitude
  bytes32 countryId;  // Country ID in hexa (ISO ALPHA 2 format)
  bytes32 postalCode; // Postal Code in Hexa (if present)
}

Their team recognized that their simple solution has limitations.

While it's a good jumping off point for the app, it doesn't meet all of the future needs of Dether. For one, it's impossible to check if the lat-lng is included in the declared country, which is problematic because the smart contract could be used in an alternative way.

Why not store geolocation data off-chain?

The NFT community has adopted JSON to store metadata. This is a good choice because it's easy to read and modify. Pinning the metadata on IPFS means NFT creators can easily modify the metadata.

While GeoJSON is a good choice for storing geolocation data, it's not the best for storing data you want to be verifiable.

Here is an example of GeoJSON:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

While GeoJSON supports various geometry types (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon), storing data off-chain means contract owners can modify metadata without token holders' permission.

Encoding locations on the blockchain

Let's explore three spatial indexing techniques: geohashes, S2, and codes (open location codes) so we can encode location data on-chain.

Hierarchical geocode can be split into keys. The Geohash 6vd23gq is the key q of the cell 6vd23g, that is a cell of 6vd23 (key g), and so on, per-digit keys. The OLC 58PJ642P is the key 48 of the cell 58PJ64, that is a cell of 58Q8 (key 48), and so on, two-digit keys. In the case of OLC there is a second key schema, after the + separator: 58PJ642P+48 is the key 2 of the cell 58PJ642P+4. It uses two key schemas. (wikipedia.org)

Before we dive deeper into geohashing, it is essential to understand why we need to hash geological data.

Geohashing can also be used to provide a degree of anonymity as we dont need to expose the exact location of the user, depending on the length of the geohash we just know they are somewhere within an area. (medium.com)

Image Credit: medium.com

Geohashing allows us to specify precision.

Geohash.encode(lat, lon, precision)

1. Geohashes (circa 2008)

According to eips.ethereum.org

A Geohash is an interleaving of latitude and longitude bits, whose length determines it's precision. Geohashes are typically encoded in base 32 characters.

We can also pair geohashes with Ethereum wallets.

For inspiration, check out crypto-spatial coordinate (CSC), which combines geohashes with Ethereum addresses.

https://miro.medium.com/max/1400/0*cvg68emIA1YHX0Ri.png

Image Credit: blog.foam.space

Here are some examples of geohashes:

  1. Geo-ENS's token standard implementation
  2. Dether's smart contract implementations: GeoRegistry and ZoneFactory
  3. Ponlawat Weerapanpisit's smart contracts for geohashes (here and here)

2. S2 (circa 2005)

S2

Image Credit: depositonce.tu-berlin.de

Here are some examples of S2:

  • Ponlawat Weerapanpisit's smart contracts for s2 (here and here

3. Open location codes (circa 2014)

Open Location Codes (OLC) are also known as Plus Codes.

Plus codes are a digital addressing technology that aims to help people answer the question "where are you?".

Source: github.com

Developed by Google, this technology is free for anyone to use.

Google popularized plus codes in Google Maps.

Image Credit: maps.google.com

Here is a great implementation of short codes by William Entriken which involves encoding a string using ASCII, little endian, into a 256-bit integer.

The following is an example code length 8 Plus Code:

String: 2 2 2 2 0 0 0 0 +
Hex: 0x000...0302B

4. Extended plus codes (circa 2021)

Extended Plus Codes (EPC) was developed by Sicari et al. as a new three-dimensional (3D) geocode algorithm.

The authors identify a 3D area in the world with the EPC:

  • 8FCQ5G68+V3^10, where 8FCQ5G68+V3 is a plus code, and 10 is ten meters above sea level.
  • 8FCQ5G68+V3^5.5, where 8FCQ5G68+V3 is a plus code, and 5 and a half meters above sea level.

GeoNFT use cases

GeoNFTs unlock new use cases not possible with traditional NFTs. Here are some examples of how to use geolocation-based NFTs:

Explore to earn tokens

  • Unlock new experiences driven by curiosity and exploration
  • Empower the next generation of crypto explorers and crypto nomads
  • Allow travelers to create digital trails on the blockchain

Scavenger hunts

  • Unlock new roaming experiences assisted by response (QR) codes
  • Conduct location-based scavenger hunts
  • Create digital treasure chests or NFT loot boxes

Digital passports

  • Tokenize physical passports
  • Create proof-of-entry and proof-of-exit
  • Collect digital stamps for web3 passports

Location-based events

  • Drive customers to retail stores, art exhibitions, or branded events
  • Create geolocation-bound tokens which can only be used within geographical proximity to event venues
  • Create unlockable venue content using geolocation data

Location-based payouts

  • Get paid based on your location
  • Create new ways to pay your employees, contractors, or DAO members
  • Create crypto incentives based on geographical movements

Location-based AR experiences

  • Create augmented reality (AR) experiences based on location
  • Mint or claim NFTs based on location
  • Create interactive experience of a real-world environment where the objects that reside in the real world are enhanced by tokens

Location-based check-ins

  • Allow people to check in using their location digitally
  • Enable brands to track employee movements
  • Share your location with a checkin and see friends nearby

Geofenced purchases

  • Allow users to purchase tokens if they are located within a certain distance from a specified location
  • Create a virtual perimeter for a geographic area
  • Access token assets within the geofenced area

Geolocation-based marketplaces

  • Show physical assets based on a digital map
  • Allow users to mint NFTs (whitelist sale, pre-sale, public sale) based on their location
  • Allow investors, collectors, or traders to purchase and sell physical assets

Art crawls

  • Show digital collectibles in specific locations, like at a museum or in an art gallery
  • Create art-focused human experiences that involve movement of the body through time and space
  • Create an opportunity for fans who want to visit the physical location where their favorite artist's work is displayed

Security fences

  • Create a virtual perimeter for a geographic area
  • Enable property owners to secure their land against squatters, vandals, and thieves
  • Place digital markers on a property that can trigger alarm systems

Asset tracking

  • Create a new way to track physical assets
  • Track the location of a package being shipped by a carrier
  • Keep track of geolocation data for a product

GeoNFT industry applications

GeoNFTs can serve various industries. Here are some industries that will benefit the most geolocation-based NFTs:

Real estate

The real estate market size was estimated at USD 3.69 trillion in 2021 and is expected to reach USD 3.81 trillion by the end of 2022.

The real estate industry is a growing industry looking to expand its reach into the digital world. The idea is that the real estate industry can use GeoNFTs to make it easier for people to have digital ownership of their real estate. Imagine purchasing a condo in NYC. Using blockchain, you could hold a token in your wallet and prove your ownership. This would be great for people who live abroad but want to invest in property back home without paying taxes until they sell it again later on down the road.

The real estate sector is one of the largest industries in the world, with trillions of dollars invested every year. It is challenging for buyers to find out about properties available for sale. Even when they find out about a property for sale, they still need to contact the relevant parties and visit the site in person. This process takes time and effort and can be very expensive for buyers and sellers. GeoNFTs solve this problem by providing a platform where buyers can search for properties based on their location and the criteria they set.

This platform also allows sellers to post their properties online, making them visible to potential buyers worldwide, even if they don't want to sell their property yet. The demand for this type of asset-backed token has never been higher because many people who want to invest in real estate don't want all the hassle that comes with it (such as finding tenants). It also offers investors who don't have large sums of money an opportunity to invest in real estate without buying entire buildings themselves.

Travel

The global business travel market was valued at $1.3 trillion in 2021 and is expected to reach $2.0 trillion by 2028.

A GeoNFT is a crypto token that has geolocation data tied to it. When you hold a GeoNFT in your wallet, you can see exactly where it is—and where it's been. For example, if you're on vacation and want to know where you took all those great photos, check out the location data on your wallet! Or maybe you want to find out what time of year your favorite restaurant will be open so you can plan your next trip there? Just look at the info right there on your phone!

Conclusion

It's time to add location data to the blockchain. It's time to tokenize geolocation-based physical assets!

Would you invest in this? Mint the Investor Pass for 1 ETH.

Would you help build this? Mint the Developer Pass for 0.1 ETH.

Would you use this? Mint the User Pass for 0.01 ETH.

Next Steps

Are you interested to support Slava in launching GeoNFTs? Collect one or more GeoNFT passes as digital collectibles!

What is your token supply?

Our max pass supply is set to 1,110 tokens.

  1. Investor Pass - 10 NFTs

  2. Developer Pass - 100 NFTs

  3. User Pass - 1,000 NFTs

When mint?

Our pass mint schedule is as follows:

  1. Whitelist: Dec 8, 2022 - 12 PM CST

    Wallets that won a guaranteed spot. Show up anytime in this window and easily mint your pass. If you don't mint during this time, your pass may be claimed by someone on the Waitlist. Limited to 1 passes per wallet. Limited to 24 hours.

  2. Waitlist: Dec 9, 2022 - 12 PM CST (24 hours later)

    Wallets that pre-registered on the access list, but didn't win a guaranteed spot, can mint during this time. First come, first serve. Limited to 1 passes per wallet. Limited to 24 hours.

  3. Pre-sale: Dec 10, 2022 - 12 PM CST (24 hours later)

    Any wallet is eligible to mint during this period. Limited to 1 passes per wallet. Limited to 24 hours.

  4. Public sale: Dec 11, 2022 - 12 PM CST (24 hours later)

    Any wallet is eligible to mint during this period. Limited to 3 passes per wallet. No time limit.

Do I have to be in the whitelist to mint this pass?

Yes, only whitelisted or allowed accounts will be able to mint one NFT during this phase.

How do I secure a whitelist spot for pass?

Ping Slava on Blockscan Chat.

How will I receive my passes?

These ERC1155 tokens will be minted on Ethereum.

I missed the minting phase! Can I still purchase these passes?

Yes, you can purchase these passes on secondary markets.

What is your token utility?

Our token provides the following benefits to investors, developers, and users:

  1. Premium content: Exclusive access to premium content for token holders, such as sneak peeks, behind-the-scenes content, and more.

  2. Discounted perks: Receive discounted perks for token holders, such as whitelist spots in other projects, and more.

  3. Project updates: Monthly project updates for token holders who want to see project progress, ask project questions, share ideas, and more.

  4. Exclusive role in community: Token holders receive 'InvestorPassHolder', 'DeveloperPassHolder', or 'UserPassHolder' roles in the Discord community.

  5. Early access: Token holders receive early access to any decentralized applications (DApps) built by Slava using the new token standard.

Created by Slava Kurilyak (slavakurilyak.eth)