GeoMarkt

A fusion of "Geography" and "Market,"

Stars
4

GeoMarkt

Welcome to the GeoMarkt platform

Technologies Used

  • The Graph: Used for indexing and querying blockchain data efficiently. The Subgraph allows you to fetch detailed cityindex data easily. You can view the subgraph here.
  • OnchainKit: Build your onchain apps with ready-to-use React components and Typescript utilities. The onchainkit gives you access to coinbase wallet and also allows for gasless fee with paymaster.
  • Base: The platform is deployed on the Base network, a Layer 2 scaling solution for Ethereum that offers lower transaction costs and faster confirmations. Base was chosen for its scalability, making it ideal for frequent transactions. You can view a sample transaction on Base here.
  • ORA Web3js plugings: used for generating customized avaters
  • @chainsafe/web3-plugin-chainlink: used for our price page here
  • Web3js plugins:
    Web3js zksync: for integrating paymaster
    Fleek: deployed to fleek

Table of contents

Overview

A decentralized platform that allows users to trade city-based tokens. These tokens are tied to the value and growth potential of real-world cities, creating a new way to invest in urban development.

core-features-implemented

GeoMarkt Project Architecture

Key Components

1. AnalyticsAPICaller (Chainlink Integration)

  • Uses Chainlink to fetch city sizes from an external API
  • City sizes are used to create City Indexes

2. GMT Token (Stablecoin)

  • Heart of the project
  • Pegged 1:1 to USD
  • Importance:
    • Reduces volatility in the ecosystem
    • Provides a stable medium of exchange for city token trading
    • Facilitates easier valuation of city indexes

3. Token Swapping

  • Users can swap ETH or USDT for GMT
  • 1:1 ratio maintained for USDT and GMT swaps
  • Chainlink price feeds ensure accurate ETH/USD conversion

4. CityIndex Contract

  • Represents tokenized ownership of a particular city
  • Users can buy and sell tokens of specific cities

5. CityIndexFactory Contract

  • Deploys new CityIndex contracts
  • Manages the creation of city-based tokens

6. GeoMarktTrading Contract

  • Enables trading of city index tokens
  • Supports leveraged positions and risk management features

Chainlink Integration

  1. API Caller: Fetches city sizes for creating accurate city indexes
  2. Price Feeds: Ensures GMT token maintains its 1:1 peg with USD
  3. (Potential future use) Automated price updates for city indexes

USDT on Sepolia Testnet

  • Custom USDT deployed for testing purposes
  • Facilitates testing of stablecoin interactions

Architecture Flow

  1. Chainlink oracles provide city data and price feeds
  2. CityIndexFactory deploys CityIndex contracts based on data
  3. Users acquire GMT by swapping ETH or USDT
  4. Users trade city tokens via CityIndex contracts
  5. GeoMarktTrading enables advanced trading features
  6. Chainlink ensures price stability and data accuracy throughout
  7. Paymaster integrated to help to support for payment in other tokens

Technologies

Stack Usage
Solidity Smart contract
Next JS Frontend

geomarkt-mvp-contract-addresses

ALL Contracts were deployed on Base Sepoila

Contract Address
GeoMarktTrading 0x79EbcC60E31e9DA03920bF80440C50Ceefa6ef0e
GeoMarktToken (GMT) 0x87A7346C49CF630C5D63Bc02d056eA4988c67f01
CityIndex (EPE) 0x3Ef64494ffA42114FE9Eda91817aEBE5f54F1a3b
CityIndexFactory 0x3b1B708D2a9B4f214F71Ad555Dd4e0d601327f18
EPE CITY TOKEN(EPE) 0xc77c2b7A3bAe71eb3cFC1700F675b34146A9A11C
PayMaster 0xBd35aE6683Ce69239F79bc857b1C3D555f3C21Db

live-link

Demo Video (Clients POV)

https://github.com/user-attachments/assets/b04349c7-6df4-49f2-adc7-08feafe2b20b

Contributors

This Project was created by these awesome dedicated members

Contributing to the project

If you find something worth contributing, please fork the repo, make a pull request and add valid and well-reasoned explanations about your changes or comments.

Before adding a pull request, please note:

  • This is an open source project.
  • Your contributions should be inviting and clear.
  • Any additions should be relevant.
  • New features should be easy to contribute to.

All suggestions are welcome!

README Created by Enebeli Emmanuel for GeoMarkt