NFT (ERC-721) tabanlı yazılım / dijital ürün lisans paneli. Lisansları zincirde üret, alıcının kendi cüzdanına lazy-mint ile bastır, NFT gibi devret ve herhangi bir yazılımdan doğrula.
Stack: Fat-Free Framework (F3) · PHP 8.3+ · Ethereum (ethers.js + MetaMask) · SQLite/MySQL
PHP hiçbir private key tutmaz. Tüm zincir yazma işlemleri (mint / transfer / voucher imzası) tarayıcıda MetaMask ile yapılır; sunucu yalnızca imza doğrular (SIWE) ve zinciri JSON-RPC ile okur.
- Cüzdan girişi (SIWE) — Sign-In With Ethereum, şifre yok.
- Lazy-mint voucher — admin EIP-712 ile imzalar, müşteri kendi gas'ıyla
redeem()eder. - Devredilebilir lisans —
transferFromile başka cüzdana geçer. - Doğrulama API —
GET /api/verify?token_id=…→ zincirdenisValid/ownerOf/expiry. - Cüzdan-bazlı erişim kontrolü —
/api/accessile ürün yazılımı "bu cüzdanın geçerli lisansı var mı?" sorar. - Kurulum sihirbazı —
.envelle yazmadan tarayıcıdan kurulum. - Tek-tık kontrat deploy — panelden MetaMask ile kendi lisans kontratını deploy et.
- Mağaza + admin paneli — ürün yönetimi, ücretsiz/kripto satış, SMTP e-posta.
- Çoklu dil entegrasyon istemcisi — hazır
license.php/.py/.go/.csindirilebilir.
Sunucu tarafı sertleştirmeler:
- CSRF koruması (form +
fetch) tüm state-değiştiren, cookie-authed uçlarda. - Session cookie
HttpOnly+SameSite=Lax+Secure(HTTPS'te oto) + strict session-id. - CSP header'ları —
X-Frame-Options,X-Content-Type-Options,Referrer-Policy. - Kurulum kilidi — ilk kurulum, sunucuda üretilen tek-kullanımlık
setup_tokenister ("ilk ziyaretçi admin olur" yarışını kapatır). - Rate-limit public uçlarda +
challengestablosu otomatik temizlenir. - SVG upload kapalı (stored-XSS),
.env0600+ newline-injection koruması. - Parametreli SQL (injection yok),
DEBUG=0default (stack trace sızmaz).
git clone https://github.com/unkownpr/cripto-lisans.git
cd cripto-lisans
php -S localhost:8080 -t publicvendor/ repoda gömülü — composer'a gerek yok. (Bağımlılıkları güncellemek
istersen composer install çalıştırabilirsin.)
Tarayıcıda http://localhost:8080 → sihirbaz açılır. Kurulum kodunu
data/setup_token.txt'den al, MetaMask'ı bağla, bitir.
.env elle yazmana gerek yok. Sihirbaz sırayla:
- Kurulum kodu —
data/setup_token.txtiçeriğini gir (güvenlik gate'i). - Site adı + URL (URL oto-algılanır).
- Admin cüzdanı — MetaMask bağla, adres oto-dolar.
- Veritabanı — SQLite (sıfır-config) veya MySQL.
- Zincir — RPC + kontrat (boş bırakılabilir, sonra
/admin/network'ten girilir).
Bitince .env (0600) yazılır, kurulum kilitlenir, setup_token silinir.
Sihirbaz sonrası panelden düzenlenebilir: SMTP → /admin/mail, zincir/kontrat →
/admin/network (tek-tık deploy), site/SEO → /admin/site.
- PHP 8.3+ — eklentiler:
gmp,curl,pdo,json,mbstringgmpzorunlu (imza doğrulama = login onunla çalışır). Shared hosting'de sık kapalı gelir; açtır. - Composer (yerelde bağımlılık kurmak için)
- MetaMask + hedef ağda biraz gas (test için Sepolia + faucet)
- Bir RPC endpoint (Alchemy / Infura / public node)
Sunucuda composer install çalıştıramıyorsan sorun yok — vendor/ repoda gömülü:
- Repoyu indir + yükle. GitHub'dan ZIP indir (Code → Download ZIP) ya da
git clone, sonra tüm projeyi FTP/File Manager ile at.vendor/içinde geldiği için sunucuda composer'a gerek yok. - PHP 8.3+ seç — cPanel: MultiPHP Manager · Plesk: Hosting Settings.
- Eklentileri aç —
gmp+curl(cPanel Select PHP Version → Extensions). - Docroot →
public/— domain'i projeninpublic/klasörüne yönlendir (subdomain/addon domain'de Document Root ayarı en temizi).app/,data/,.envasla web-kök altında olmamalı. - Yazma izinleri —
data/vetmp/→755; proje kökü.enviçin yazılabilir. /install→data/setup_token.txt'yi File Manager'dan aç → kodu gir → kur.
curl "https://panel.example.com/api/verify?token_id=123"
# → {"valid":true,"token_id":"123","owner":"0x…","expiry":0,"perpetual":true,"product_uri":"…"}Cüzdan-bazlı erişim (ürün yazılımından):
GET /api/access?product_id=1 → { nonce, message } (cüzdan imzalar)
POST /api/access { product_id, message, signature }
→ { valid, address, token_id }
Hazır entegrasyon istemcileri: /download/license.php · .py · .go · .cs.
| Katman | Görev |
|---|---|
Kontrat (contracts/LicenseNFT.sol) |
ERC-721 + EIP-712 lazy mint + expiry + revoke |
Tarayıcı (public/assets/app.js, ethers.js) |
MetaMask: SIWE login, voucher imzası, redeem, transfer |
| PHP panel (F3) | SIWE ecrecover, admin yönetimi, zincir okuma, /api/verify |
- SIWE tam EIP-4361 parse etmez; nonce + adres + imza doğrular.
- "Lisanslarım" voucher tablosunu tarayıp
ownerOfile eşleştirir (event indexer yok — büyük ölçekteTransferevent indexer /eth_getLogscron gerekir). - Fiat ödeme (Stripe) akışı stub; kripto & ücretsiz satış çalışır.
- Cihaz bağlama / anti-korsan yok.
MIT © 2026 ssilistre





