> For the complete documentation index, see [llms.txt](https://docs.chiliz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chiliz.com/tr/gelistir/gelismis/omnichain-token-kullanimi/solanadan-chiliz-chaine-kopru.md).

# Solana'dan Chiliz Chain'e Köprü

Mevcut bir token'ı Solana'dan Chiliz Chain'e köprülemek için iki ayrı akıllı sözleşme yazıp deploy etmeniz gerekir: token'ın halihazırda var olduğu zincirde (Solana) bir OFT Adapter ve hedef zincirde (Chiliz Chain) bir Yerel OFT.

*LayerZero'nun OFT sözleşmeleri için kendi QuickStart rehberini sağladığını unutmayın:*

{% embed url="<https://docs.layerzero.network/v2/developers/evm/oft/quickstart>" %}

## Ön Koşullar

{% hint style="info" %}
Solana'dan (EVM Dışı) Chiliz Chain'e (EVM) köprüleme, çift yığın geliştirme gerektirir.\
Her iki ekosistem için de ortamlar ve cüzdanlar kurmanız gerekecektir.

Bu nedenle şu ortamlara ihtiyacınız olacak:

* Solana etkileşimleri için: [Rustup](https://rustup.rs/) (Solana akıllı sözleşmeleri Rust programlama dili kullanır), [Solana CLI ve Anchor çerçevesi](https://solana.com/docs/intro/installation) ve [LayerZero'nun Solana SDK'sı](https://docs.layerzero.network/v2/tools/sdks/solana-sdk).
* Chiliz Chain etkileşimleri için: Node/npx ve Hardhat.
  {% endhint %}

Bu rehber için şunlar gereklidir:

* Chiliz Chain'e köprülemek istediğiniz mevcut SPL Token'ının mint adresi.
* Her zincir için bir Web3 cüzdanı:
  * Solana için: [Solana Mainnet yapılandırmasıyla](https://solana.com/docs/references/clusters) [Solflare](https://www.solflare.com/) cüzdanı. İşte [kurulum kılavuzları](https://www.solflare.com/guides/how-to-set-up-your-first-crypto-wallet-with-solflare-step-by-step/).
  * Chiliz Chain için: [Chiliz Chain RPC yapılandırmasıyla](/tr/gelistir/temel-ogeler/chiliz-chaine-baglanma/rpc-ile-baglanma.md) MetaMask cüzdanı.
* Her iki zincirde sözleşme deploy maliyetleri ve mesaj gönderme gas ücretlerini karşılayacak yeterli gas token'ı.
  * Solana'da: SOL token'ları.
  * Chiliz Chain'de: CHZ token'ları.

## Adım 1: Sözleşme Geliştirme

{% hint style="info" %}
**"Shared Decimals" Sorunu**

Ethereum Sanal Makinesi (EVM) token matematiğini Solana'dan farklı biçimde yönettiğinden, token'lar köprüden geçmeden önce ondalık hassasiyetlerini hizalamak gerekir:

* Solana (Kaynak): Yerel SPL Token'ları genellikle 9 ondalık basamağa sahiptir.
* Chiliz Chain (Hedef): Standart ERC-20 token'ları (ve yeni hedef OFT'niz) genellikle 18 ondalık basamak kullanır.

Solana'dan 9 ondalık basamaklı bir payload'ı doğrudan Chiliz'e dönüştürmeden gönderirseniz, EVM sözleşmesi miktarı yanlış yorumlar ve hedef zincirde bir token'ın mikroskobik bir kesri basılır.

Matematiği normalleştirmek için LayerZero bir `sharedDecimals` yapılandırması kullanır. Varsayılan olarak, LayerZero V2 OFT standardı `sharedDecimals` değerini 6 olarak ayarlar.

* Bir kullanıcı Solana'dan 1.00 SPL token köprülediğinde, Solana Adapter sayıyı 6 ondalık basamağa indirir (SPL token'ının en düşük 3 ondalık basamağını "toz" olarak değerlendirir ve bunları güvenle kullanıcının cüzdanında bırakır).
* 6 ondalık basamaklı mesaj payload'ı köprü üzerinden gönderilir.
* Chiliz Chain Yerel OFT, 6 ondalık basamaklı sayıyı alır ve ERC-20 token'ını kullanıcının EVM cüzdanına basmadan önce yerel 18 ondalık basamağa yükseltir.

[Daha fazla bilgi için buraya bakın](https://docs.layerzero.network/v2/faq#what-is-shareddecimals-can-i-override-default-shareddecimals-in-an-oft-contract).
{% endhint %}

### Solana Program Geliştirme

Token'ınız zaten Solana'da mevcut olduğundan yeni bir token sözleşmesi oluşturmanıza gerek yoktur. Bunun yerine Rust dilinde yazılmış bir Solana OFT Adapter Programı deploy edeceksiniz. Bu program, kullanıcılar Chiliz Chain'e köprülerken SPL token'larını güvenli biçimde tutan ve kullanıcılar geri döndüğünde serbest bırakan merkeziyetsiz bir kilitli kutu görevi görecektir.

LayerZero, Rust mantığını sıfırdan yazmanıza gerek kalmayacak şekilde önceden oluşturulmuş ve denetlenmiş sözleşmelerle hazır bir Anchor çalışma alanı sağlar.

#### **1. LayerZero Solana SDK'yı Klonlama**

Solana OFT Adapter örneğini içeren resmi LayerZero geliştirici araçları deposunu klonlayarak başlayın.

Terminalinizi açın ve şunu çalıştırın:

{% code overflow="wrap" %}

```bash
git clone https://github.com/LayerZero-Labs/devtools.git
cd devtools/examples/oft-solana
npm install
```

{% endcode %}

#### **2. Solana Adapter Programını Derleme**

Bu dizin hem Yerel OFT hem de OFT Adapter uygulamalarını içeren bir Anchor çalışma alanıdır. Benzersiz Solana Program ID'nizi oluşturmak için Rust programını derlemeniz gerekir.

{% code overflow="wrap" %}

```bash
anchor build
```

{% endcode %}

Derleme tamamlandıktan sonra şunu çalıştırarak yeni Program ID'nizi alın:

{% code overflow="wrap" %}

```bash
anchor keys list
```

{% endcode %}

{% hint style="warning" %}
Deploy etmeden önce `Anchor.toml` dosyasını ve `programs/oft-adapter/src/lib.rs` içindeki `declare_id!` makrosunu yeni Program ID'nizle güncellemeniz gerekir.
{% endhint %}

#### **3. Solana Mainnet'e Deploy Etme**

Solana CLI'nizin Mainnet için yapılandırıldığından ve yerel cüzdanınızın deploy boyutunu ve depolama kirasını karşılayacak yeterli $SOL'a sahip olduğundan emin olun.

{% code overflow="wrap" %}

```bash
solana config set --url mainnet-beta
anchor deploy
```

{% endcode %}

#### **4. OFT Adapter'ı Başlatma**

Yerel OFT'nin aksine (yeni bir Mint oluşturulmasını gerektiren), Adapter'ı başlatmak, yeni deploy edilen Program ID'nizi mevcut SPL Token Mint Adresinize bağlamanızı sağlar.

LayerZero SDK, bu başlatmayı komut satırından gerçekleştirmek için Hardhat görevleri sağlar. Solana LayerZero Endpoint'inizi (`30168`) yapılandırın ve şunu çalıştırın:

{% code overflow="wrap" lineNumbers="true" %}

```bash
npx hardhat lz:oft-adapter-solana:init --program-id <YOUR_NEW_PROGRAM_ID> --mint <YOUR_EXISTING_SPL_MINT_ADDRESS_BASE58> --shared-decimals 6
```

{% endcode %}

Burada kritik parametreler var:

* `--mint`: Köprülemek istediğiniz SPL token'ının tam Base58 Mint Adresi olmalıdır. Adapter bu token için özel bir emanet hesabı oluşturacaktır.
* `--shared-decimals 6`: Bu, payload'ı EVM'ye göndermeden önce Adapter'ın ölçeklendirme biçimini belirler. Solana token'ınızın 9 ondalık basamağı varsa, burada 6 shared decimals bırakmak köprü boyunca güvenli biçimde çevrilmesini sağlar.

Bu başlatma işlemi Solana'da onaylandıktan sonra Adapter'ınız canlı ve SPL token'larınızı güvenle kilitlemeye hazır!

### Chiliz Sözleşme Geliştirme

Solana SPL token'ınız henüz Chiliz Chain'de mevcut olmadığından, standart bir Yerel `OFT` sözleşmesi deploy etmeniz gerekir. Bu sözleşme minter görevi görecektir. Solana Adapter'ınızdan doğrulanmış bir mesaj aldığında, karşılık gelen ERC-20 token'larını basacak; kullanıcı Solana'ya geri döndüğünde ise yakacaktır.

{% hint style="info" %}
"Shared Decimals Sorunu"nda da tartıştığımız gibi, Solana Adapter'ınız payload'ı göndermeden önce 6 ondalık basamağa indirger.

LayerZero'nun EVM uygulaması, özel ölçeklendirme mantığı yazmanızı gerektirmez. Varsayılan olarak, `OFT.sol` sözleşmesi 18 yerel ondalık basamak ve 6 shared decimal kullanır. Solana'dan gelen 6 ondalık basamaklı payload'ı otomatik olarak algılar ve ERC-20 token'ını kullanıcının cüzdanına basmadan önce standart 18 ondalık basamak formatına yükseltir.
{% endhint %}

#### Chiliz Chain'de OFT Deploy Etme

Hardhat projenizin `contracts/` klasöründe `ChilizNativeOFT.sol` adında yeni bir dosya oluşturun:

{% code lineNumbers="true" %}

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;

import { OFT } from "@layerzerolabs/lz-evm-oapp-v2/contracts/oft/OFT.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

contract ChilizNativeOFT is OFT {
    constructor(
        string memory _name,    // Token'ın adı (Solana SPL Token'ınızla eşleşmeli)
        string memory _symbol,  // Token'ın sembolü (Solana SPL Token'ınızla eşleşmeli)
        address _lzEndpoint,    // Chiliz'deki LayerZero V2 Endpoint adresi
        address _delegate       // Yapılandırma değişikliklerini yapabilecek adres
    ) OFT(_name, _symbol, _lzEndpoint, _delegate) Ownable(_delegate) {}
}
```

{% endcode %}

Henüz deploy etmeyin! Ancak şunu aklınızda tutun:

* Kullanıcılarınız için birleşik bir deneyim sağlamak amacıyla `_name` ve `_symbol` parametrelerinin orijinal Solana SPL token'ınızla birebir eşleştiğinden emin olun.
* Chiliz Mainnet'e deploy ederken Chiliz Endpoint V2 adresini (`0x6F475642a6e85809B1c36Fa62763669b1b48DD5B`) `_lzEndpoint` olarak geçireceksiniz.

## Adım 2: LayerZero Yapılandırması

Solana Adapter'ınız başlatıldı ve Chiliz Yerel OFT'niz deploy için hazır olduğunda, aralarındaki bağlantıyı yapılandırmanız gerekir.

Buradaki temel zorluk adres formatlamasıdır. LayerZero'nun çapraz zincir mesajlaşması, tüm eş adreslerin `bytes32` olarak formatlanmasını gerektirir. LayerZero V2 Hardhat araç seti bunu otomatik olarak Base58 Solana Adapter Program ID'nizi çözerek standart EVM formatına doldurarak gerçekleştirir.

[Simple Config Generator](https://docs.layerzero.network/v2/tools/simple-config), çift yönlü bağlantıları otomatikleştirdiği ve önerilen güvenlik yapılandırmalarını otomatik olarak uyguladığı için önerilen yöntemdir.

Hardhat projenizin kökünde `layerzero.config.ts` dosyasını oluşturun veya güncelleyin:

{% code lineNumbers="true" %}

```typescript
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities';
import { OAppEnforcedOption, OmniPointHardhat } from '@layerzerolabs/toolbox-hardhat';
import { EndpointId } from '@layerzerolabs/lz-definitions';
import { generateConnectionsConfig } from '@layerzerolabs/metadata-tools';

// Sözleşmeleri Tanımlayın
const solanaContract: OmniPointHardhat = {
    eid: EndpointId.SOLANA_V2_MAINNET,
    address: 'YourSolanaAdapterProgramIdHereInBase58', 
    // NOT: EVM dışı ağlar 'contractName' yerine 'address' kullanır
};

const chilizContract: OmniPointHardhat = {
    eid: EndpointId.CHILIZ_V2_MAINNET,
    contractName: 'ChilizNativeOFT', // EVM üzerindeki Hardhat deploy adınız
};

// Chiliz için Çalıştırma Seçeneklerini Tanımlayın (EVM Gas)
const EVM_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000, // Chiliz'de token basmak için standart EVM gas birimi
        value: 0,
    },
];

// Solana'ya dönüş yolculuğu için Çalıştırma Seçeneklerini Tanımlayın (Compute Unit & Lamport)
const SOLANA_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000,    // Kilit açmayı yürütmek için Solana Compute Unit
        value: 2500000, // ATA oluşturma kira ücretini karşılamak için Lamport
    },
];

// Oluşturulan Yapılandırmayı Dışa Aktarın
export default async function () {
    return {
        contracts: [
            { contract: solanaContract },
            { contract: chilizContract },
        ],
        connections: await generateConnectionsConfig([
            [
                solanaContract, 
                chilizContract,
                [['LayerZero Labs'], []], 
                [1, 1], 
                [EVM_ENFORCED_OPTIONS, SOLANA_ENFORCED_OPTIONS], // Seçenekler [Chiliz EVM'ye, Solana SVM'ye]
            ],
        ]),
    };
}
```

{% endcode %}

Oluşturucu, Solana Base58 adresinizi Chiliz akıllı sözleşmesinin gerektirdiği EVM `bytes32` dolgusu biçimine otomatik olarak dönüştürür.

## Adım 3: Deploy İş Akışı

Bu aşamada Solana Adapter'ınız zaten derlenmiş, deploy edilmiş ve başlatılmıştır (Adım 1'de ele alınmıştır). Şimdi köprünün EVM tarafını — Yerel OFT'yi — Chiliz Chain'e deploy etmeniz gerekiyor.

Hardhat'i bu sözleşmeyi Chiliz Mainnet'e göndermek için kullanacaksınız.

### **1. Chiliz Yerel OFT Deploy Betiği**

Hardhat projenizde, `deploy/` dizininde `01_deploy_chiliz_native_oft.ts` adında bir deploy betiği oluşturun. Bu betik Chiliz'de yeni ERC-20 token'ı başlatır.

{% code lineNumbers="true" %}

```typescript
import { DeployFunction } from 'hardhat-deploy/types';

const deployOFT: DeployFunction = async ({ getNamedAccounts, deployments }) => {
    const { deploy } = deployments;
    const { deployer } = await getNamedAccounts();

    // Token Detayları (Mevcut Solana SPL Token'ınızla kesinlikle eşleşmeli)
    const TOKEN_NAME = "My Solana Token";
    const TOKEN_SYMBOL = "SOLTKN";

    // Chiliz Mainnet Endpoint V2 Adresi
    const CHILIZ_ENDPOINT_V2 = "0x6F475642a6e85809B1c36Fa62763669b1b48DD5B";

    console.log("Deploying Native OFT to Chiliz Mainnet...");

    await deploy('ChilizNativeOFT', {
        from: deployer,
        args: [
            TOKEN_NAME,         // _name
            TOKEN_SYMBOL,       // _symbol
            CHILIZ_ENDPOINT_V2, // _lzEndpoint
            deployer            // _delegate (Sahip)
        ],
        log: true,
        waitConfirmations: 2,
    });
};

export default deployOFT;
deployOFT.tags = ['ChilizNativeOFT'];
```

{% endcode %}

### **2. Solana Program Deploy**

Kısa bir hatırlatma olarak, Solana Adapter'ınız ilk deploy için Hardhat kullanmaz. Şimdiye kadar:

1. Rust programını Solana Mainnet'e göndermek için `anchor build` ve `anchor deploy` komutlarını çalıştırmış olmalısınız.
2. Adapter'ı mevcut SPL Token Mint'inize bağlamak için `lz:oft-adapter-solana:init` görevini çalıştırmış olmalısınız.
3. Elde edilen Base58 Program ID'yi `layerzero.config.ts` dosyanıza kopyalamış olmalısınız.

### **3. Chiliz Deploy İşlemini Çalıştırma**

`hardhat.config.ts` dosyanızda RPC URL'sinin ve private key'in `chiliz` ağı için doğru şekilde yapılandırıldığından emin olun.

Yerel OFT'yi deploy etmek için terminalinizde şu komutu çalıştırın:

{% code lineNumbers="true" %}

```bash
npx hardhat deploy --network chiliz --tags ChilizNativeOFT
```

{% endcode %}

Deploy tamamlandıktan sonra Hardhat, yeni Chiliz sözleşme adresini `deployments/` klasörüne kaydedecektir. Artık hem Solana'da (SVM) hem de Chiliz Chain'de (EVM) canlı sözleşmeleriniz var, ancak henüz birbirleriyle konuşmaya yetkilendirmediler.

## Adım 4: Bağlantı ve Eşleşme

Bu noktada Solana'da bir Rust Adapter Programı ve Chiliz Chain'de bir Yerel EVM OFT'niz var. Güvenli iletişim kurmalarını sağlamak için onları güvenilir eşler olarak "bağlamanız" gerekir.

Tıpkı ters yönde köprülemede olduğu gibi, iki tamamen farklı Sanal Makineyle (SVM ve EVM) uğraşıyoruz. Bu nedenle Zorunlu Seçenekleri (Gas Limitleri) doğru yapılandırmak, işlemlerinizin hedef zincirde takılmaması için kritik öneme sahiptir.

### **Chiliz için "Zorunlu Seçenekler" (EVM)**

Bir kullanıcı SPL token'ını Solana'dan Chiliz'e köprülediğinde, LayerZero Executor'ın ERC-20 token'larını basmak için Chiliz sözleşmenizde `lzReceive` fonksiyonunu çağırması için EVM gas'ına ihtiyacı vardır.

Tersine, geri dönüş yolculuğunda (Chiliz'den Solana'ya), Executor'ın SPL token'larını açmak ve potansiyel olarak İlişkili Token Hesabı (ATA) kirası için Solana Compute Unit'e ve Lamport'a ihtiyacı olacaktır.

### **Yapılandırmayı Güncelleme**

Executor'ın her iki yönde yeterli gas'a sahip olmasını garanti etmek için, bağlamadan önce bu limitleri `layerzero.config.ts` dosyanızda tanımlamanız gerekir.

Yapılandırma dosyanızdaki `connections` dizisini aşağıdaki `enforcedOptions` ile güncelleyin:

{% code lineNumbers="true" %}

```typescript
import { EndpointId } from '@layerzerolabs/lz-definitions';
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities';

// ... (Adım 3'teki sözleşmeler dizisi)

    connections: [
        // Yol 1: Solana -> Chiliz (Birincil rota)
        {
            from: 'YourSolanaAdapterProgramIdHereInBase58',
            to: 'ChilizNativeOFT',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, // Standart OFT Transferi
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000, // Chiliz'de token basmak için standart EVM Gas
                        value: 0,    // Chiliz EVM'de yerel bırakma gerekmez
                    }
                ]
            },
        },
        // Yol 2: Chiliz -> Solana (Geri dönüş yolculuğu)
        {
            from: 'ChilizNativeOFT',
            to: 'YourSolanaAdapterProgramIdHereInBase58',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, 
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000,    // Kilit açma için Solana Compute Unit
                        value: 2500000, // Lamport (gerekirse ATA kira ücretini karşılar)
                    }
                ]
            },
        },
    ],
// ...
```

{% endcode %}

### **Wire Görevini Çalıştırma**

Yapılandırmanız kaydedildikten sonra, LayerZero V2 araç seti eşleşme sürecini otomatikleştirir. Base58 Solana adresinizi çözer, gerekli `bytes32` EVM formatına doldurur ve hem Solana Mainnet hem de Chiliz Mainnet'e yapılandırma işlemlerini gönderir.

Terminalinizde şu komutu çalıştırın:

{% code lineNumbers="true" %}

```bash
npx hardhat lz:oapp:wire --oapp-config layerzero.config.ts
```

{% endcode %}

{% hint style="info" %}
CLI işlemleri onaylamanızı isteyecektir. İşlemi Solana ağına göndermek için yapılandırılmış Solana cüzdanınızı ($SOL maliyetiyle) ve Chiliz hedef işlemini göndermek için Hardhat'i ($CHZ maliyetiyle) kullanacaktır.
{% endhint %}

Chiliz tarafında, LayerZero Hardhat araç seti 6 gerekli yapılandırma işlemini otomatik olarak oluşturup yürütür:

1. `setSendLibrary`: Mesaj gönderimi için V2 MessageLib'i atar.
2. `setReceiveLibrary`: Mesaj alımı için MessageLib'i atar.
3. `setConfig` (Gönderme Kütüphanesi): DVN'leri ve Executor'ı yapılandırır.
4. `setConfig` (Alma Kütüphanesi): Gelen doğrulama için DVN'leri yapılandırır.
5. `setEnforcedOptions`: Tutarlı çalıştırma parametrelerini sağlar (özellikle geri dönüş yolculuğu için yeterli Solana Compute Unit'inin ödenmesini garanti eder).
6. `setPeer`: Chiliz EID'yi Solana Adapter'ınızın Base58 Program ID'sine (bytes32'ye dönüştürülmüş) kriptografik olarak bağlar.

Her iki işlem de onaylandıktan sonra, Solana'dan Chiliz'e köprünüz resmi olarak aktif ve güvenli biçimde izin verilmiş olacaktır!

## Adım 5: Operasyon ve Test

Solana Adapter'ınız deploy edildi, Chiliz Yerel OFT'niz başlatıldı ve ikisi düzgün biçimde bağlandı; SPL Token'ınız artık resmi olarak SVM/EVM engelini aşmaya hazır. Son adım, Solana'dan Chiliz Chain'e bir test transferi gerçekleştirmek ve izlemektir.

### **1) Solana Cüzdanınızı Hazırlama**

EVM'nin aksine (burada Adapter'a bir ödenek vermek için ayrı bir önceki `approve()` işlemi yürütmeniz gerekir), Solana token onaylarını ve transferleri aynı işlem talimatları içinde gerçekleştirir.

Ancak, yerel Solana cüzdanınızın (projenizde yapılandırılmış olan) köprülemek istediğiniz SPL token'larının bakiyesini ve kaynak işlem ücreti ile LayerZero çapraz zincir mesaj ücretini ödemek için yeterli $SOL'u gerçekten tuttuğundan emin olmalısınız.

**2) Chiliz'e Çapraz Zincir Mesajı Gönderme**

LayerZero V2 araç seti, kaynak zincir Solana olduğunda bile doğrudan komut satırından OFT transferleri göndermek için bir Hardhat görevi içerir.

Solana'dan Solana'ya transferlerin aksine, hedefiniz burada standart bir EVM onaltılık cüzdan adresidir (örneğin `0x123...`). LayerZero CLI, payload için doldurmayı ve byte dönüşümünü otomatik olarak gerçekleştirir.

Terminalinizde şu komutu çalıştırın:

{% code lineNumbers="true" %}

```bash
npx hardhat lz:oft:send \
  --oapp-config layerzero.config.ts \
  --from-eid 30168 \
  --to-eid 30409 \
  --to <YOUR_CHILIZ_EVM_WALLET_ADDRESS> \
  --amount 10
```

{% endcode %}

{% hint style="info" %}
Burada neler oluyor?

1. Betik çapraz zincir ücretini $SOL cinsinden hesaplar.
2. Cüzdanınızdan 10 SPL token'ı Solana Adapter'ının emanet hesabına transfer eden bir işlem oluşturur.
3. Adapter, 9 ondalık basamaklı SPL token miktarını 6 shared decimal'e indirir.
4. LayerZero Endpoint, paketi Chiliz Mainnet'e doğru yayınlar.
   {% endhint %}

### **3) Paketi LayerZero Scan'de İzleme**

Solana'dan köprüleme, iki tamamen farklı konsensüs mekanizması arasında çeviri yapmayı ve SVM'de işlemi kesinleştirmeyi içerdiğinden, eşzamansız bir gecikme normaldir.

Bu yolculuğu gerçek zamanlı izlemek için CLI çıktısında görünen LayerZero Scan bağlantısına tıklayın.

Bu araç hakkında daha fazla bilgi edinin:

{% embed url="<https://docs.layerzero.network/v2/developers/evm/tooling/layerzeroscan>" %}

{% hint style="info" %}
Chiliz Yerel OFT, köprüden gelen 6 ondalık basamaklı payload'ı EVM standardı olan 18 ondalık basamağa otomatik olarak yükseltecektir; böylece tam olarak 10 token alırsınız.
{% endhint %}

### **4) Takılı Mesajlarda Sorun Giderme**

İşleminiz Solana'da onaylandı ancak Chiliz'de yürütülmedi olarak işaretlendiyse, en yaygın neden EVM Gas Yetersizliği hatasıdır.

* Adım 5'te yapılandırılan `enforcedOptions`'daki `gas` parametresi, Chiliz ağının `lzReceive` basım fonksiyonunu işlemesi için çok düşük ayarlanmışsa, LayerZero Executor mesajı iletmeyi başaramaz.
* Çözüm: Token'larınızı kaybetmiyorsunuz. Takılı bir mesajı LayerZero Scan arayüzü aracılığıyla manuel olarak ilerletebilirsiniz. EVM cüzdanınızı Chiliz Chain'e bağlayın, blok gezginindeki "Force Resume" veya "Execute" düğmesine tıklayın ve basımı sonlandırmak için Chiliz gas ücretini kendiniz ödeyin.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.chiliz.com/tr/gelistir/gelismis/omnichain-token-kullanimi/solanadan-chiliz-chaine-kopru.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
