Genel Bakış|HEYLOGRAM.TV — TEKNİK DÖKÜMAN
Sistem Mimarisi & Teknik Özellikler

Heylogram.tv

Polygon ve BNB Smart Chain Mainnet üzerinde NFT domain, çoklu venue DEX agregatörü, LP kilitleme ve LuckPool ödül katmanı. Garura sezonu, görev ekonomisi ve Partner sistemi 2026-05-16 itibarıyla rafa kaldırıldı; kod silinmedi, UI gizlendi.

01Genel Bakış

Blockchain
Polygon · BSC
Chain ID
137 · 56
Framework
Next.js App Router
Wallet
wagmi v2 + RainbowKit
Database
Firebase Firestore
Deploy
Vercel
Web3 Lib
viem v2
DEX
Uni V3 · Sushi V3 · QuickSwap V3

02Kontrat Adresleri

Tüm kontratlar Polygon (chainId 137) ve BNB Smart Chain (chainId 56) mainnet'te yayında. PolygonScan ve BscScan üzerinden doğrulanabilir.

Polygon Mainnet · chainId 137

KONTRATTİPADRES
Domain NFT (aktif)ERC-7210xc993f5A85724a609A4747e9c237A12C57F13A826
Domain NFT (eski)ERC-7210xc654129EF0FE6677d7A01B852D1113a0110b0816
MarketplaceCustom0x88Be8507cB3750e16331Fe10601fB0297d4C35ea
VOI TokenERC-200xc8Ad9EB7D26337E598AFE89bF69d21455BD10501
JVOI Token (jjvoi)ERC-200xa50eBF45c9C8D7F45C861D6064165E910e3fbEc5
HEY TokenERC-200xC9e3488E3CDAA944fDBFce0DEf602d4b09db4032
HLTV TokenERC-200x8C55F7815b619e07B16fed6C3D0418684e441038
URA TokenERC-200xaafbd87e2D69Dc317276a16E2c195d269214b7C5
GARURA TokenERC-20 · 1 adet0x427E0a0F5B8b70e2f98CcA860FdFF58055C253C5
GaruraPool V2 · rafaCustom0x87555b791A30ec5B10150ac1BD399741030DFBb0
LP LockerCustom0x3df61b76622eC494cEE2f586914DB14913c5CA98
LuckPool V2Custom0xd20e8ABDd5b767D6E112F0f51B058BDa0715B9Cf
LiquidityMiningCustom0xfF07dedAa182F1A1Ad4E83780DED2A52726B4A05

BNB Smart Chain Mainnet · chainId 56 · Deploy 2026-05-19

KONTRATTİPADRES
JVOI Token (jjvoi)ERC-200xc8Ad9EB7D26337E598AFE89bF69d21455BD10501
HLTV TokenERC-200xa2A9614a75D0C938431ea496dBf22Abe4Eb09B03

Not: JVOI BSC adresi tesadüfen Polygon VOI adresiyle aynı. Farklı zincirler, farklı kontratlar — EVM CREATE deterministic mantığı nedeniyle aynı deployer + aynı nonce aynı adresi üretir.

RPC

Aktif
https://polygon.drpc.org
https://1rpc.io/matic
Kullanılmıyor
polygon-rpc.com
rpc.ankr.com/polygon

03Token Ekonomisi

TOKENZİNCİRTOPLAM ARZDURUMKULLANIM
$VOIPolygon100MMint tamamlandı · cap dolduDomain ödemesi, DEX likidite
$JVOIPolygon · BSCSabit (cap)Mint tamamlandı · sahipsizLiquidityMining ödülü, DEX
$HEYPolygon2BMint tamamlandı · cap dolduCanlı yayın ekonomisi (bekleyen)
$HLTVPolygon · BSCSabit (cap)Bekleyen tohumHeylogram TV ekosistemi
$URAPolygon98.774.312.000.000.000Tıklamayla aktifTap-to-earn, batch mint
$GARURAPolygon1Son tıklayan bekliyorURA biter → gönderilir

Kontrat Notları

⏸ Trading Pause (VOI · HEY)

VOI ve HEY kontratlarında flash loan saldırısına karşı acil durdurma fonksiyonu bulunur. Normal operasyonda pasif. CMC bu durumu "Contract Not Renounced + Pause" uyarısı olarak gösterir.

Mint Tamamlandı

VOI, HEY, JVOI ve HLTV tokenlarında planlanan tüm arz mint edildi. Garura sezon mintleri rafa kaldırılınca yeni arz baskısı kalmadı. Admin panelindeki mint UI 2026-05-16'da kaldırıldı.

04Domain Sistemi

Her .heylogramtv domaini bir ERC-721 NFT'dir. Sahiplik zincirde kayıtlıdır.

UZUNLUKPOLVOIUSD ~
11201.500$10
260750$5
330400$2.5
415200$1.3
5+680$0.5
Basic
Cüzdan bağlı, domain yok. DEX, URA, Locker, LuckPool, mintleme açık.
Domain Holder
.heylogramtv sahibi. Profile resolver (eyup.heylogram.tv), pasaport NFT görseli, gelecek canlı yayın yetkileri.

05Garura Havuzu · rafa

🛏️ RAFA · 2026-05-16
Garura sezon ödülü sistemi rafa kaldırıldı. /garura sayfası ShelvedNotice gösteriyor, season-distribute cron pasif, kontrat (0x8755...) PolygonScan'de çağrılmıyor. Kod silinmedi; aşağıdaki tasarım arşiv niteliğindedir.

Kullanıcıların görevlerden kazandığı puanları mevsimsel token havuzlarına dönüştüren dağıtım mekanizması.

Hesaplama Formülü

kullanıcı_payı = (committedPoints + earnedDuringSeason) / totalPoolPoints × seasonAmount × 0.90 // %10 platform kesintisi

Sezon Akışı

1
Oluşturma
Admin token+miktar+süre belirler
2
Kayıt
Kullanıcı committedPoints kilitler
3
Aktif
Görevler earnedDuringSeason'a sayılır
4
Dağıtım
adminPush() ile cüzdanlara token

06Görev Sistemi · rafa

🛏️ RAFA · 2026-05-16
Görev ekonomisi Garura ile birlikte rafa kaldırıldı. /gorevler sayfası ShelvedNotice gösteriyor. /api/mission/* endpoint'leri durduruldu. ECDSA mimarisi başka yerlerde (LuckPool register, Partner bekleyen) referans için tutuluyor.

Görev tamamlama ECDSA imza doğrulamasıyla korunur. Kullanıcı gas ödemez.

İmza Formatı

message = `heylogramtv:complete: ${missionId}:${wallet}:${timestamp}` // Replay koruması: timestamp < 5 dk // Backend: recoverMessageAddress()

Görev Tipleri

TİPTEKRAR
standardbir kez / günlük / haftalık
site_visitbir kez (?hw=WALLET)
domain_mintbir kez (tx hash)

07Partner Sistemi · rafa

🛏️ RAFA · 2026-05-16
Partner B2B sistemi rafa kaldırıldı. /partner ve /advertise sayfaları ShelvedNotice gösteriyor. /api/partner/* endpoint'leri durduruldu, frontend'den çağrı yok.

.heylogramtv domain sahibi partner olabilir. LP pozisyonu kontrata bağlıdır, domain satılırsa otomatik iptal.

%85
Kullanıcılara
%15
Platform payı
+%1
Partner bonusu
FONKSİYONAÇIKLAMA
deposit(tokenId, isOld, tokenChoice, amount)Partner VOI/HEY yatırır, domain sahipliği zincirde doğrulanır
reward(partner, user, token, amount, taskId)Admin göreve göre kullanıcıya ödeme yapar
rewardBatch(...)Gas optimizasyonu için toplu ödeme
withdraw(tokenChoice, amount)Partner kalan bakiyeyi çeker
reclaimAfterSale()Domain satılırsa fonlar otomatik geri alınır

08LP Locker

Uniswap V3 LP pozisyonlarını zaman kilidiyle sabitleyen açık kaynaklı kontrat. Herkes kendi LP NFT'sini kilitleyebilir. Kontrat'ta admin yetkisi, durdurma fonksiyonu veya zorla kilit açma mekanizması yoktur.

Trustless Özellikler
  • ·Admin yoktur — kimse kiliti zorla açamaz
  • ·Owner kontrolü — sadece kilitleyen açabilir
  • ·Süre kontrolü — unlockTime geçmeden açılmaz
  • ·Herkese açık — herhangi bir LP NFT kilitlenebilir
  • ·PolygonScan'de doğrulanmış

Kontrat Adresi

0x3df61b76622eC494cEE2f586914DB14913c5CA98

Fonksiyonlar

FONKSİYONYETKİ
lock(nftContract, tokenId, unlockTime, label)Herkese açık
unlock(lockId)Sadece kilit sahibi + süre dolmuş
getLock(lockId)Görüntüleme (view)
locksByOwner(address)Görüntüleme (view)
activeLocks()Görüntüleme (view)

Kilit Veri Yapısı

struct Lock { address owner; // kilitleyen cüzdan address nftContract; // Uniswap V3 Position Manager uint256 tokenId; // LP NFT token ID uint256 unlockTime; // Unix timestamp (kilit açılma zamanı) string label; // açıklama (max 128 karakter) bool withdrawn; // kilit açıldı mı? }

Kilitleme Akışı

1
LP NFT seç
Uniswap V3 pozisyonu — cüzdanda NFT olarak durur
2
Approve
NFT'yi locker kontratına yetkilendir
3
lock()
Süreyi ve etiketi belirle, TX imzala
4
Kilitlendi
Herkes /locker sayfasında görebilir
5
unlock()
Süre dolunca sadece sahip açabilir

09Güvenlik Modeli

🔑
ECDSA İmza
Tüm kritik işlemler cüzdan imzasıyla korunur. 5 dakikalık replay penceresi.
⏱️
Rate Limiter
Kritik endpoint'lerde dakikada 5 istek limiti. 429 döner.
🔗
On-Chain Kontrol
Domain tier ve partner durumu her istekte balanceOf/ownerOf ile zincirden okunur.
Trading Pause
VOI kontratında flash loan saldırısına karşı acil durdurma. Normalde pasif.
🏛️
DAO Geçiş Planı
LiquidityMining ve diğer admin kontratlarında 2 adımlı admin transferi (proposeAdmin + acceptAdmin) mevcut. Proje büyüdükçe topluluk yönetimine devredilecek.
🔒
Sır Yönetimi
ADMIN_PRIVATE_KEY ve Firebase credentials Vercel'de şifreli. NEXT_PUBLIC_ olmayan değişkenler sadece sunucu tarafında çalışır.

10Teknik Altyapı

Firestore Koleksiyonları

kullanicilar/{wallet} puan, epochPuan tamamlananGorevler[] tier: 'basic' | 'domain-holder' referans: string domainProfiles/{name} displayName, bio, avatarUrl links[], coverColor, customText ura_clicks/{wallet} clicks, pending, mintedUra lastClickAt, lastMintAt // ── rafa (referans için tutuluyor) ── seasons/{seasonId} · Garura · rafa garuraRegistrations/{docId} · Garura · rafa partners/{wallet} · Partner · rafa

API Rotaları

ROUTEAUTH / DURUM
/api/domain/has-domain
/api/domain/metadata/[id]
/api/domain/image/[id]
/api/voi-price
/api/ura/clickİmza + rate limit
/api/ura/leaderboard
/api/profile/[name]
/api/missionsrafa
/api/mission/completerafa
/api/garura/*rafa
/api/partner/*rafa

11Yol Haritası

Canlı
  • ·.heylogramtv ERC-721 domain
  • ·Domain marketplace
  • ·VOI · JVOI · HEY · HLTV · URA · GARURA
  • ·JVOI + HLTV BSC mainnet (2026-05-19)
  • ·DEX agregatör — Uni V3 + Sushi V3 + QuickSwap V3
  • ·URA tap-to-earn + in-app cüzdan
  • ·Uniswap V3 LP Locker
  • ·LuckPool V2 ödül katmanı
  • ·LiquidityMining (Standart + Angel)
  • ·heylogram.tv subdomain profil resolver
Yakında
  • ·CMC güvenlik uyarılarının azaltılması (likidite + audit)
  • ·Heylogram.tv canlı yayın (Livepeer + HEY)
  • ·Yayıncı NFT koleksiyonu (ERC-1155)
  • ·DEX: Charts, Limit Order, DCA, Multi-chain swap
  • ·Çoklu-TLD genişleme (.com / .net / .org)
  • ·Referans sistemi
  • ·Topluluk yönetimi (DAO)

12LuckPool — Şans Havuzu

Mimarı

Kullanıcı mevcut Locker kontratına LP NFT kilitler. LuckPool bu kontratın üzerinde yalnızca ödül katmanı olarak çalışır. Locker değişmez; LuckPool sadece okunur.

Kontrat Adresi

0xd20e8ABDd5b767D6E112F0f51B058BDa0715B9Cf

Fonksiyonlar

FonksiyonAçıklamaErişim
addPrize(token, amount)Prize havuzuna token ekle — geri çekilemezonlyAdmin
register(lockId)Locker lock ID'sini buraya kaydetHerkes
claim(entryId)Random prize al — lock doğrulandıktan sonraSahip
getPrizePool()Tüm token adresleri ve kalan miktarlarHerkes
canClaim(entryId)Claim yapılabilir mi kontrol etHerkes

Rastgelelik Algoritması

rand = keccak256( block.prevrandao, // Polygon PoS random block.timestamp, entryId, unlockTime, msg.sender, block.coinbase ) token = available[rand % count] amount = (rand2 % maxAmt) + 1e18 // min: 1 token | max: %5 havuz | hard cap: 1000

Akış

1
Locker'a kilitle
LP NFT → 0x3df61b76...
2
register(lockId)
Lock sahibi doğrulanır, entry oluşturulur
3
Oyun oyna
Token ikonlarını patlatma — Candy Crush tarzı
4
claim(entryId)
Random token seçilir, transfer edilir

13Likidite Madenciliği

Kontrat Adresi

0xfF07dedAa182F1A1Ad4E83780DED2A52726B4A05

Parametreler

ParametreStandartAngel
Kilit Süresi30 gün180 gün
Min YatırımHerhangi100 POL
JVOI Ödül Oranı%1 (100 BPS)%5 (500 BPS)
İade Timeout48 saat48 saat
Uniswap Fee Tier0.3% (3000)0.3% (3000)
Tick Range−887220 / +887220−887220 / +887220

Backend Entegrasyonu

// Kullanıcı deposit() çağırır (POL + JVOI gönderir) // Backend bu event'i dinler: event Deposited(address user, uint256 positionId, ...) // Backend Uniswap V3'te LP pozisyonu oluşturur: NPM = 0xC36442b4a4522E871399CD717aBDD847Ab11FE88 NPM.mint(MintParams{ token0:WMATIC, token1:JVOI, fee:3000, ... }) // Backend LiquidityMining'e NFT'yi bağlar: lockPosition(positionId, nftTokenId) // onlyAdmin // 48 saat dolup NFT bağlanmazsa kullanıcı iade alır: refundPosition(positionId) // POL + JVOI geri

Güvenlik: refundPosition()

Backend 48 saat içinde LP NFT bağlamazsa kullanıcı hem POL hem JVOI'sini geri alır. Kontrat native POL tuttuğu için doğrudan transfer edilir — WMATIC unwrap gerekmez.

14DEX Agregatör

Tek panelde üç Polygon venue'sünden anlık fiyat karşılaştırma + tek-tık swap + Uniswap V3 LP pozisyonu açma. Aracı kontrat yok; tüm işlemler doğrudan venue router'larına gider. UI 6 sekmeden oluşur.

Sekmeler

Swap
Çoklu venue, en iyi fiyat
Pool
Uni V3 LP açılışı
Bridge
Jumper.exchange
Portföy
Token + LP NFT görünümü
Locker
LP NFT kilit
LuckPool
Random ödül

Desteklenen Venue'ler

VENUEAİLEQUOTERROUTER
Uniswap V3Uni V30x61fFE014bA17989E743c5F6cB21bF9697530B21e0xE592427A0AEce92De3Edee1F18E0157C05861564
Sushi V3Uni V30xb1E835Dc2785b52265711e17fCCb0fd018226a6e0xb87e57bA2DBe22529F0d322bDB0d2d1f5ec39cd1
QuickSwap V3Algebra Integral0xa15F0D7377B2A0C0c10db057f641beD21028FC890xf5b509bB0909a69B1c207E495f687a596C168E12

Quote Akışı

// 1) Önce Quoter çağrısı (resmi yol) quoteExactInputSingle(tokenIn, tokenOut, fee, amountIn, 0) → returns amountOut // 2) Quoter revert ederse — pool-based fallback sqrtPriceX96 = pool.slot0().sqrtPriceX96 price = sqrtPriceX96² / 2²⁰⁰ amountOut = amountIn * price * (1 - fee/1e6) // 3) Tüm venue'lerin tüm fee tier'larında paralel quote // en büyük amountOut kazanır → buildSwapTx() çağrılır

Desteklenen Tokenlar

POL · WMATIC · USDC · USDT · WETH · DAI · VOI · JVOI · HEY · HLTV · URA · GARURA

Kullanıcı kendi ERC-20 adresini de ekleyebilir: Portföy sekmesinde "+ Özel adres ekle" → symbol/name/decimals zincirden çekilir → localStorage'de saklanır.

Trustless Tasarım

Aracı Yok
  • ·Heylogram custom kontratı yok — venue router'larına doğrudan tx
  • ·Approve hedefi her zaman venue'nün kendi router'ı
  • ·LP NFT venue'nün Position Manager'ında kalır
  • ·Site kapansa swap'ler venue UI'sından yapılmaya devam edebilir
📁 Modüller
lib/dexTokens.ts POLYGON_TOKENS, FEE_TIERS, VENUES lib/dexAdapters.ts quoteBestVenue() buildSwapTx() buildMintTx() pool-based fallback app/dapp/dex/page.tsx 6 sekme, ~1900 satır
HEYLOGRAM.TV TECHNICAL PAPER — 2026