# Solana'dan Chiliz Chain'e köprüleme

Solana’dan Chiliz Chain’e mevcut bir tokenı köprülemek için iki ayrı akıllı sözleşme yazıp dağıtmanız gerekir: tokenın zaten bulunduğu zincirde (Solana) bir OFT Adapter ve hedef zincirde (Chiliz Chain) bir Native OFT.

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

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

## Ön Koşullar

{% hint style="info" %}
Solana (Non-EVM) ile Chiliz Chain (EVM) arasında köprüleme, çift yığınlı geliştirme gerektirir.\
Her iki ekosistem için de ortamların ve cüzdanların kurulmuş olması gerekir.

Bu nedenle aşağıdaki ortamlara ihtiyacınız olacak:

* Solana etkileşimleri için: [Rustup](https://rustup.rs/) (Solana akıllı sözleşmeleri Rust programlama dilini kullanır), [Solana CLI ve Anchor framework](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 kılavuz aşağıdakileri gerektirir:

* Chiliz Chain’e köprülemek istediğiniz mevcut SPL Token’ın mint adresi.
* Her zincir için bir Web3 cüzdanı:
  * Solana için: [Solflare](https://www.solflare.com/) cüzdanı ile [Solana Mainnet yapılandırması](https://solana.com/docs/references/clusters). İşte [kurulum kılavuzu](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ına sahip MetaMask cüzdanı](/tr-ai/develop/basics/connect-to-chiliz-chain/connect-using-rpc.md).
* Sözleşme dağıtımları ile mesaj gönderme için gereken gas ücretlerini ödeyecek kadar her zincirde yeterli gas tokenı.
  * Solana’da: SOL tokenları.
  * Chiliz Chain’de: CHZ tokenları.

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

{% hint style="info" %}
**“Shared Decimals” Zorluğu**

Ethereum Virtual Machine (EVM) token matematiğini Solana’dan farklı şekilde ele aldığı için, tokenlar köprüyü geçmeden önce ondalık hassasiyetlerini eşitlememiz gerekir:

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

Solana’dan 9 ondalıklı bir yükü doğrudan dönüştürmeden Chiliz’e 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ığa ölçekler (SPL token’ın en düşük 3 ondalığını “toz” olarak kabul eder ve bunları kullanıcının cüzdanında güvenli şekilde bırakır).
* 6 ondalıklı mesaj yükü köprü üzerinden gönderilir.
* Chiliz Chain Native OFT, 6 ondalıklı sayıyı alır ve *yukarı* ölçekleyerek kullanıcının EVM cüzdanına ERC-20 tokenını basmadan önce yerel 18 ondalığına çevirir.

[Buradan daha fazlasını öğrenin](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 bulunduğu için yeni bir token sözleşmesi oluşturmanız gerekmez. Bunun yerine Rust ile yazılmış bir Solana OFT Adapter Programı dağıtacaksınız. Bu program, kullanıcılar tokenlarını Chiliz Chain’e köprülediğinde SPL token’larınızı güvenli biçimde tutan merkeziyetsiz bir kilit kutusu gibi davranacak ve kullanıcılar geri köprüleme yaptığında onları serbest bırakacaktır.

LayerZero, Rust mantığını sıfırdan yazmanıza gerek kalmaması için önceden oluşturulmuş, denetlenmiş sözleşmeler içeren bir Anchor workspace sağlar.

#### **1. LayerZero Solana SDK’sını klonlama**

Resmî LayerZero geliştirici araçları deposunu klonlayarak başlayın; bu depo Solana OFT Adapter örneğini içerir.

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 Native OFT hem de OFT Adapter uygulamalarını içeren bir Anchor workspace’tir. 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, yeni Program ID’nizi almak için şunu çalıştırın:

{% code overflow="wrap" %}

```bash
anchor keys list
```

{% endcode %}

{% hint style="warning" %}
Şunları güncellemeniz gerekir: `Anchor.toml` dosyası ve `declare_id!` makrosu `programs/oft-adapter/src/lib.rs` dosyasının içindeki yeni Program ID’nizle, dağıtımdan önce.
{% endhint %}

#### **3. Solana Mainnet’e Dağıtım**

Solana CLI’nizin Mainnet için yapılandırıldığından ve yerel cüzdanınızda dağıtım boyutunu ve depolama kirasını karşılayacak yeterli $SOL bulunduğundan emin olun.

{% code overflow="wrap" %}

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

{% endcode %}

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

Native OFT’nin (yeni bir Mint oluşturmayı gerektiren) aksine, Adapter’ı başlatmak yalnızca yeni dağıtılmış Program ID’nizi mevcut SPL Token Mint Address’inize bağlar.

LayerZero SDK, bu başlatmayı komut satırından yönetmek için Hardhat görevleri sağlar. Solana LayerZero Endpoint’inizin (`30168`) yapılandırıldığından emin olun, ardından şunu çalıştırın:

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

```bash
npx hardhat lz:oft-adapter-solana:init --program-id <YENİ_PROGRAM_ID’NİZ> --mint <MEVCUT_SPL_MINT_ADRESİNİZ_BASE58> --shared-decimals 6
```

{% endcode %}

Burada kritik parametreler vardır:

* `--mint`: Bu, köprülemek istediğiniz SPL token’ın tam Base58 Mint Address’i olmalıdır. Adapter bu token için özel bir emanet (escrow) hesabı oluşturacaktır.
* `--shared-decimals 6`: Bu, Adapter’ın EVM’ye göndermeden önce yükü nasıl ölçekleyeceğini belirler. Solana tokenınız 9 ondalığa sahipse, burada 6 shared decimals bırakmak, taşma sorunları olmadan köprü üzerinden güvenli biçimde çevrilmesini sağlar.

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

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

Solana SPL tokenınız henüz Chiliz Chain’de mevcut olmadığından, standart bir Native `OFT` sözleşmesi dağıtmanız gerekir. Bu sözleşme basıcı (minter) olarak görev yapacaktır. Solana Adapter’ınızdan doğrulanmış bir mesaj aldığında karşılık gelen ERC-20 tokenları basacak; bir kullanıcı Solana’ya geri köprü yaptığında ise onları yakacaktır.

{% hint style="info" %}
“Shared Decimals Challenge” bölümünde tartıştığımız gibi, Solana Adapter’ınız yükü göndermeden önce 6 ondalığa düşürür.

LayerZero’nun EVM uygulaması, özel ölçekleme mantığı yazmanıza gerek olmayacak şekildedir. Varsayılan olarak, `OFT.sol` sözleşmesi 18 yerel ondalık ve 6 shared decimals kullanır. Solana’dan gelen 6 ondalıklı yükü otomatik olarak algılar ve ERC-20 tokenını kullanıcının cüzdanına basmadan önce bunu standart 18 ondalıklı formata ($$ $1 \times 10^{18}$ $$) yükseltir.
{% endhint %}

#### OFT’yi Chiliz Chain’e Dağıtma

Şu adla yeni bir dosya oluşturun: `ChilizNativeOFT.sol` Hardhat projenizin `contracts/` klasöründe:

{% 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 üzerindeki LayerZero V2 Endpoint adresi
        address _delegate       // Yapılandırma değişiklikleri yapabilen adres
    ) OFT(_name, _symbol, _lzEndpoint, _delegate) Ownable(_delegate) {}
}
```

{% endcode %}

Henüz dağıtmayın! Ama bunu aklınızda tutun:

* Şunların olduğundan emin olun: `_name` ve `_symbol` parametreleri, kullanıcılarınız için birleşik bir deneyim sağlamak amacıyla orijinal Solana SPL tokenınızla birebir eşleşmelidir.
* Chiliz Mainnet’e dağıtırken, Chiliz Endpoint V2 adresini (`0x6F475642a6e85809B1c36Fa62763669b1b48DD5B`) `_lzEndpoint`.

## olarak vereceksiniz

2\. Adım: LayerZero Yapılandırması

Şimdi Solana Adapter’ınız başlatılmış ve Chiliz Native OFT’niz dağıtım için hazır olduğuna göre, aralarındaki bağlantıyı yapılandırmanız gerekir. `Buradaki ana zorluk adres biçimlendirmesidir. LayerZero’nun zincirler arası mesajlaşması, tüm eş adreslerin`bytes32

Şu [olarak biçimlendirilmesini gerektirir. LayerZero V2 Hardhat toolbox bunu, Base58 Solana Adapter Program ID’nizi çözümleyip onu standart EVM formatına doldurarak otomatik olarak yönetir.](https://docs.layerzero.network/v2/tools/simple-config) Simple Config Generator

yapılandırma kablolamasını oluşturmak için önerilen yoldur; çünkü çift yönlü kablolamayı otomatikleştirir ve önerilen güvenlik yapılandırmalarını altyapıda uygular. `layerzero.config.ts` dosyanızı Hardhat projenizin kök dizininde 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ımla
const solanaContract: OmniPointHardhat = {
    eid: EndpointId.SOLANA_V2_MAINNET,
    address: 'BurayaBase58OlarakSolanaAdapterProgramId’niz', 
    // NOT: Non-EVM’ler 'contractName' yerine 'address' kullanır
};

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

// Chiliz (EVM Gazı) için Yürütme Seçeneklerini Tanımla
const EVM_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000, // Chiliz’de token basmak için standart EVM gas birimleri
        value: 0,
    },
];

// Solana’ya dönüş yolculuğu için Yürütme Seçeneklerini Tanımla (Compute Units & Lamports)
const SOLANA_ENFORCED_OPTIONS: OAppEnforcedOption[] = [
    {
        msgType: 1, 
        optionType: ExecutorOptionType.LZ_RECEIVE,
        gas: 200000,    // kilidi açma işlemini yürütmek için Solana Compute Units
        value: 2500000, // ATA oluşturma kira ücretini karşılamak için Lamports
    },
];

// Oluşturulan Yapılandırmayı Dışa Aktar
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 adresinizin EVM’ye otomatik dönüştürülmesini yönetir `Buradaki ana zorluk adres biçimlendirmesidir. LayerZero’nun zincirler arası mesajlaşması, tüm eş adreslerin` Chiliz akıllı sözleşmesi tarafından gereken dolgu.

## 3. Adım: Dağıtım İş Akışı

Bu aşamada Solana Adapter’ınız zaten derlenmiş, dağıtılmış ve başlatılmış durumda (1. Adımda anlatıldığı gibi). Şimdi köprünün EVM tarafını—Native OFT’yi—Chiliz Chain’e dağıtmanız gerekir.

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

### **1. Chiliz Native OFT Dağıtım Betiği**

Hardhat projenizde, `deploy/` dizininizde `01_deploy_chiliz_native_oft.ts`adlı bir dağıtım betiği oluşturun. Bu betik, Chiliz üzerinde yeni ERC-20 tokenını başlatacaktı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("Chiliz Mainnet’e Native OFT dağıtılıyor...");

    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 Dağıtımı**

Kısa bir hatırlatma olarak, Solana Adapter’ınız ilk dağıtım için Hardhat kullanmaz. Şunları zaten yapmış olmanız gerekir:

1. Çalıştırdınız `anchor build` ve `anchor deploy` Rust programını Solana Mainnet’e göndermek için.
2. Yürüttünüz `lz:oft-adapter-solana:init` Adapter’ınızı mevcut SPL Token Mint’inize bağlamak için görevini.
3. Ortaya çıkan Base58 Program ID’yi şuraya kopyaladınız: `layerzero.config.ts` dosyanız.

### **3. Chiliz Dağıtımını Yürütme**

Şunlardan emin olun: `hardhat.config.ts` dosyanızda RPC URL’si ve özel anahtarın `chiliz` ağı için doğru şekilde yapılandırılmış olması.

Native OFT’yi dağıtmak için terminalinizde şu komutu çalıştırın:

{% code lineNumbers="true" %}

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

{% endcode %}

Dağıtım tamamlandığında, Hardhat yeni basılan Chiliz sözleşme adresini `deployments/` klasörüne kaydedecektir. Artık hem Solana (SVM) hem de Chiliz Chain (EVM) üzerinde canlı sözleşmeleriniz var, ancak henüz birbirleriyle konuşmaları için yetkilendirilmediler.

## 4. Adım: Wiring ve Peering

Bu noktada Solana üzerinde bir Rust Adapter Programınız ve Chiliz Chain üzerinde bir Native EVM OFT’niz var. Bunların güvenli biçimde iletişim kurabilmesi için onları güvenilir eşler olarak birlikte “wire” etmeniz gerekir.

Ters yönde köprüleme yaparken olduğu gibi, burada da tamamen farklı iki Sanal Makine (SVM ve EVM) ile uğraşıyoruz. Bu nedenle, Zorunlu Seçenekleri (Gas Limitleri) doğru yapılandırmak, işlemlerinizin hedef zincirde takılmamasını sağlamak için kritik önemdedir.

### **Chiliz (EVM) için “Enforced Options”**

Bir kullanıcı SPL token’ını Solana’dan Chiliz’e köprülediğinde, LayerZero Executor ERC-20 tokenları basmak için Chiliz sözleşmenizdeki `lzReceive` fonksiyonunu çağıracak EVM gas’ına ihtiyaç duyar.

Buna karşılık, dönüş yolculuğu için (Chiliz’den Solana’ya), Executor SPL token’larının kilidini açmak ve gerekirse Associated Token Account (ATA) için kirayı ödemek üzere Solana Compute Units ve Lamports’a ihtiyaç duyacaktır.

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

Executor’ın her iki yönde de yeterli gaza sahip olduğunu garanti etmek için, bu limitleri kablolamadan önce `layerzero.config.ts` dosyanızda tanımlamanız gerekir.

Şunu güncelleyin: `connections` dizisini, yapılandırma dosyanıza aşağıdakileri dahil edecek şekilde `enforcedOptions`:

{% code lineNumbers="true" %}

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

// ... (3. Adımdan contracts dizisi)

    connections: [
        // Yol 1: Solana -> Chiliz (ana rota)
        {
            from: 'BurayaBase58OlarakSolanaAdapterProgramId’niz',
            to: 'ChilizNativeOFT',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, // Standart OFT Transfer
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000, // Chiliz’de token basmak için standart EVM Gas
                        value: 0,    // Chiliz EVM’de native drop gerekmez
                    }
                ]
            },
        },
        // Yol 2: Chiliz -> Solana (dönüş yolculuğu)
        {
            from: 'ChilizNativeOFT',
            to: 'BurayaBase58OlarakSolanaAdapterProgramId’niz',
            config: {
                enforcedOptions: [
                    {
                        msgType: 1, 
                        optionType: ExecutorOptionType.LZ_RECEIVE,
                        gas: 200000,    // kilidi açma için Solana Compute Units
                        value: 2500000, // Lamports (gerekirse ATA kira ücretini karşılar)
                    }
                ]
            },
        },
    ],
// ...
```

{% endcode %}

### **Wire Görevini Yürütme**

Yapılandırmanız kaydedildikten sonra, LayerZero V2 toolbox peering sürecini otomatikleştirir. Base58 Solana adresinizi çözer, gerekli `Buradaki ana zorluk adres biçimlendirmesidir. LayerZero’nun zincirler arası mesajlaşması, tüm eş adreslerin` EVM formatına doldurur ve yapılandırma işlemlerini hem Solana Mainnet’e hem de Chiliz Mainnet’e gönderir.

Terminalinizde aşağıdaki komutu çalıştırın:

{% code lineNumbers="true" %}

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

{% endcode %}

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

Chiliz tarafında, LayerZero Hardhat toolbox otomatik olarak 6 gerekli yapılandırma işlemi oluşturup yürütecektir:

1. `setSendLibrary`: Mesaj göndermek için V2 MessageLib’i atar.
2. `setReceiveLibrary`: Mesaj almak için MessageLib’i atar.
3. `setConfig` (Send Library): DVN’leri ve Executor’ı yapılandırır.
4. `setConfig` (Receive Library): Gelen doğrulama için DVN’leri yapılandırır.
5. `setEnforcedOptions`: Tutarlı yürütme parametreleri sağlar (özellikle dönüş yolculuğu için yeterli Solana Compute Units’in ödendiğinden emin olur).
6. `setPeer`: Chiliz EID’sini, Solana Adapter’ınızın Base58 Program ID’sine kriptografik olarak bağlar (dönüştürülmüş `Buradaki ana zorluk adres biçimlendirmesidir. LayerZero’nun zincirler arası mesajlaşması, tüm eş adreslerin`).

Solana SDK, SVM tarafı için eşdeğer programatik talimatları altyapıda yönetir.

Her iki işlem de onaylandıktan sonra, Solana’dan Chiliz’e köprünüz resmen canlı ve güvenli izinlerle çalışır hale gelir!

## 5. Adım: İşletim ve Test

Solana Adapter’ınız dağıtılmış, Chiliz Native OFT’niz başlatılmış ve ikisi doğru şekilde birbirine bağlanmış durumda; böylece SPL Token’ınız artık SVM/EVM ayrımını geçmeye resmen hazırdır. Son adım, Solana’dan Chiliz Chain’e bir test transferi gerçekleştirmek ve bunu izlemektir.

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

EVM’de olduğu gibi, bir Adapter’a yetki vermek için ayrı, önceden bir `approve()` işlemi gerçekleştirmeniz gerekmez; Solana token onaylarını ve transferlerini aynı işlem talimatları içinde yönetir.

Ancak, yerel Solana cüzdanınızın (projenizde yapılandırılmış olanın) köprülemek istediğiniz SPL token bakiyesine gerçekten sahip olduğundan ve ayrıca kaynak işlem ücretini ile LayerZero zincirler arası mesaj ücretini ödemek için yeterli $SOL bulunduğundan emin olmalısınız.

**2) Zincirler Arası Mesajı Chiliz’e Gönderme**

LayerZero V2 toolbox, kaynak zincir Solana olsa bile OFT transferlerini doğrudan komut satırından göndermek için bir Hardhat görevi içerir.

Solana’dan Solana’ya transferlerin aksine, burada hedefiniz standart bir EVM onaltılık cüzdan adresidir (örn. `0x123...`). LayerZero CLI, yük için dolguyu ve bayt dönüşümünü otomatik olarak yönetir.

Terminalinizde aşağıdaki 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 <CHILIZ_EVM_CÜZDAN_ADRESİNİZ> \
  --amount 10
```

{% endcode %}

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

1. Betik zincirler arası ücreti `$SOL`.
2. olarak hesaplar
3. 10 SPL token’ı cüzdanınızdan Solana Adapter’ın emanet hesabına transfer eden bir işlem oluşturur.
4. Adapter, 9 ondalıklı SPL token miktarını 6 shared decimals’e ölçekler.
   {% endhint %}

### **LayerZero Endpoint paketi Chiliz Mainnet’e doğru yayar.**

3\) Paketi LayerZero Scan’de İzleme

Solana’dan köprüleme, iki tamamen farklı mutabakat mekanizması arasında çeviri yapmayı ve EVM’de yürütmeden önce işlemi SVM üzerinde kesinleştirmeyi içerdiğinden, asenkron 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.

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

{% hint style="info" %}
Bu araç hakkında daha fazla bilgi edinin:
{% endhint %}

### **Chiliz Native OFT, 6 ondalıklı yükü otomatik olarak EVM standardı 18 ondalığa yükseltecektir; böylece tam olarak 10 tam token alırsınız**

4\) Takılı Kalmış Mesajların Sorun Giderilmesi

* İşleminiz Solana’da onaylanmış olarak işaretlenmesine rağmen Chiliz üzerinde yürütülemezse, en yaygın neden bir EVM Out-of-Gas hatasıdır. `Eğer` gas `enforcedOptions` parametresi `lzReceive` (5. Adımda yapılandırılan) Chiliz ağının
* minting fonksiyonunu işlemesi için çok düşük ayarlandıysa, LayerZero Executor mesajı teslim edemez. Düzeltme: Tokenlarınızı kaybetmezsiniz. Takılı kalan mesajı LayerZero Scan arayüzü üzerinden manuel olarak iletebilirsiniz. Sadece EVM cüzdanınızı Chiliz Chain’e bağlayın, blok gezgininde “Force Resume” veya “Execute” düğmesine tıklayın ve mint işlemini tamamlamak için Chiliz gas ücretini kendiniz ödeyin.


---

# Agent Instructions: 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:

```
GET https://docs.chiliz.com/tr-ai/develop/advanced/use-omnichain-tokens/bridging-from-solana-to-chiliz-chain.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
