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
- API Caller: Fetches city sizes for creating accurate city indexes
- Price Feeds: Ensures GMT token maintains its 1:1 peg with USD
- (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
- Chainlink oracles provide city data and price feeds
- CityIndexFactory deploys CityIndex contracts based on data
- Users acquire GMT by swapping ETH or USDT
- Users trade city tokens via CityIndex contracts
- GeoMarktTrading enables advanced trading features
- Chainlink ensures price stability and data accuracy throughout
- 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