# 🌐 Web3'te Tokenization (Varlık Tokenizasyonu)
## 📌 Tokenization Nedir?
Tokenization, gerçek dünyadaki veya dijital bir varlığın (asset) blockchain üzerinde temsil edilmesidir.
Bu varlıklar şunlar olabilir:
- Gayrimenkul 🏠
- Altın / emtia 🪙
- Sanat eserleri 🎨
- Hisse senetleri 📈
- Oyun içi varlıklar 🎮
Bu varlıklar blockchain üzerinde **token** olarak temsil edilir.
---
## 🧠 Mantık
Basitçe:
> Gerçek dünyadaki bir değeri → Smart contract ile → Blockchain üzerinde token olarak temsil etmek
---
## 🧩 Nasıl Çalışır?
### 1. Varlık belirlenir
Örnek:
- 1 ev (100.000$ değerinde)
### 2. Token'a bölünür
- 1000 adet token oluşturulur
- Her biri: 100$
### 3. Smart Contract yazılır
- Token standardı seçilir (ERC-20 / ERC-721 / ERC-1155)
### 4. Blockchain'e deploy edilir
- Token artık alınıp satılabilir
---
## 🖼️ Genel Mimari


---
## 🔧 Kullanılan Teknolojiler
| Bileşen | Açıklama |
|--------|--------|
| Smart Contract | Token mantığını yönetir |
| Blockchain | Kayıt sistemi |
| Oracle | Gerçek dünya verisi |
| Wallet | Kullanıcı erişimi |
---
## ⚙️ Token Türleri
### 1. ERC-20 (Fungible Token)
- Bölünebilir
- Aynı değerde
Örnek:
- USDT
- DAI
---
### 2. ERC-721 (NFT)
- Tekil (unique)
- Bölünemez
Örnek:
- NFT sanat eserleri
---
### 3. ERC-1155
- Hem fungible hem NFT
---
## 🖼️ Token Türleri Diyagram

---
## 🧪 Basit Örnek (ERC-20 Token)
```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleToken {
string public name = "MyToken";
string public symbol = "MTK";
uint256 public totalSupply = 1000000;
mapping(address => uint256) public balanceOf;
constructor() {
balanceOf[msg.sender] = totalSupply;
}
function transfer(address to, uint256 amount) public {
require(balanceOf[msg.sender] >= amount, "Yetersiz bakiye");
balanceOf[msg.sender] -= amount;
balanceOf[to] += amount;
}
}