> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/tr/gelistirici-kilavuzlari/from-home.md).

# Evden: başka bir zincirden Rome'a ulaşın

Başka bir zincirdeki kullanıcıların evlerinden çıkmadan Rome uygulamanıza ulaşmasına izin verin — varlıkları içeri alın, işlem yapın, sonra geri çıkarın.

Kullanıcılarınızın Rome'a taşınması gerekmez. Kendi ana zincirlerinden — Arbitrum veya Monad gibi bir L2 ya da Solana — varlıkları içeri getirirler, Rome uygulamanızı kullanırlar ve varlıkları tekrar dışarı çıkarırlar. Köprü zincir üstündedir ve kullanıcının kendi imzasıyla yetkilendirilir; uygulamanızı ona tek bir API üzerinden bağlarsınız.

## Nasıl çalışır

* **Gelen (ana zincir → Rome):** CCTP üzerindeki gaz-tokeni USDC rotasında, `settle_inbound_bridge_v2` Rome programının talimatı, imzalı bir **EIP-712** `SettleAuthorization`, bu yüzden ayrıcalıklı bir yerleştirici yoktur. Diğer gelen rotalar bu talimatı veya imzayı kullanmaz. Wrapper USDC, Wormhole üzerinden ETH ve SOL, kullanıcının hesabına doğrudan wrapper token olarak iner. Gaz tokeni USDC olan bir zincirdeki Solana USDC için, wrapper'ı gaza dönüştürmek üzere kullanıcının imzaladığı bir işlem daha gerekir. Teklif, bir rotanın hangi imzaları gerektirdiğini size söyler.
* **Çıkış (Rome → ana zincir):** `RomeBridgeWithdraw` (içinde [`rome-solidity`](https://github.com/rome-protocol/rome-solidity)) varlığı Rome'da yakar. Kullanıcı ardından kendi işlemiyle bunu ana zincirde talep eder.
* **Taşıma:** Circle **CCTP** USDC için ve **Wormhole** ETH için token köprüsü. Solana ana zincirleri, içeri düz SPL transferleri ve dışarı bir Rome çekimi kullanır. Wormhole, yalnızca ETH için gelen hattıdır. Genel bir Wormhole rotası yalnızca çıkış için vardır ve üzerindeki her varlığın önce Rome operatörleri tarafından etkinleştirilmesi gerekir.
* **Orkestrasyon:** zincir dışı [`rome-bridge-api`](https://github.com/rome-protocol/rome-bridge-api) bir rotayı fiyatlar, kaynak zincirdeki işlemi doğrular ve yerleştirme ücretini karşılar. Elinde ne fon ne de anahtar tutar. Yalnızca kullanıcının zaten imzaladığı şeyi tetikleyebilir.

## Bunu oluşturun

API devnet üzerinde şu adreste herkese açıktır: `https://bridge-api.devnet.romeprotocol.xyz`. `GET /v1/routes` (varlık, hat, yön, kaynak zincir, Rome zinciri, hızlar) canlı olan tüm rotaları listeler. Aşağıdaki çağrılar, SDK'nın şu sarmalayıcı içinde sunduğu aynı dört çağrıdır: `@rome-protocol/sdk/bridge` (`requestQuote`, `registerTransfer`, `getTransfer`, `reportStep`). CLI sizin için tüm akışı çalıştırır: `rome fund` ve `rome bridge` transferler için ve `rome verify --path from-home` bir gidiş-dönüş için; [Rome CLI](/tr/urunler/rome-cli.md) sayfasındadır.

### Varlıkları içeri getir

1. **Rotayı fiyatlandırın.** Kullanıcının kaynak zincirini, varlığını, miktarını ve adreslerini gönderin. Zincirler, örneğin `eip155:84532`; `romeChainId` sizin Rome zincirinizdir. Daha eski adlar `ethereum` ve `solana` hâlâ kabul edilir ama kullanımdan kaldırılmıştır ve API bu yanıtları bir `Sunset` başlığıyla işaretler. Tam istek ve yanıt yapıları [API referansında](https://github.com/rome-protocol/rome-bridge-api/blob/main/docs/API.md).

   ```bash
   curl -X POST https://bridge-api.devnet.romeprotocol.xyz/v1/quote \
     -H 'Content-Type: application/json' \
     -d '{
       "asset": "USDC",
       "direction": "to-rome",
       "sourceChain": "eip155:84532",
       "romeChainId": "200010",
       "amount": "1000000",
       "sender": { "ethereum": "0xUSER" },
       "recipient": "0xUSER"
     }'
   ```

   Tutarlar, dizeler içinde taban-birim tam sayılarıdır (`"1000000"` 1 USDC'dir). ETH tutarları wei cinsindendir ve çıkışta 10.000.000.000 wei'nin katı olmalıdır (wrapper 8 ondalığa sahiptir); API daha ince olanı reddeder. Yanıt, `adımları`listeler. Kullanıcı, `userSigns: true`olarak işaretlenmiş her adımın işlemlerini, adım sırasıyla imzalar: EVM işlemleri `unsignedTxs`içindedir, Solana talimatları ise `unsignedTx`içindedir. Bunları tam olarak döndürüldükleri gibi imzalayın. İmzalanacak hiçbir şeyi olmayan adımlar, Circle veya Wormhole transferi tasdik ettikten sonra sponsor tarafından tamamlanır. Çıkış talebi istisnadır, aşağıda açıklanmıştır: onu kullanıcı oluşturur.
2. **Kullanıcıya imzalatın.** CCTP teklifi için bu, kaynak zincirdeki USDC onayı ve yakımdır. Teklifte `signatureRequests`içinde bir giriş varsa, kullanıcı ayrıca o EIP-712 `SettleAuthorization` yakım karması bilindiğinde imzalar; yakım karmasını doldurun ve sonucu bir sonraki çağrıda `userSettleSig` olarak iletin. Yalnızca gaz-tokenli CCTP rotasında vardır. Wormhole ETH, wrapper-intent USDC ve Solana rotalarında yoktur.
3. **Transferi kaydedin.** `POST /v1/transfers` tam teklif ve `step1TxHash`ile, ilk adımın son işleminin karmasıyla (yakım). API, kaynak zincirdeki işlemin teklif ile eşleştiğini denetler ve bir transfer `kimliği`.
4. **Sorgula** `GET /v1/transfers/{id}` her birkaç saniyede bir `sonucu` olduğu `tamamlanana kadar`. Kullanıcı o zaman Rome'da fonlanır ve uygulamanızı kullanabilir.

Solana ana zincirleri, farklı adımlarla aynı yapıyı izler. Kullanıcı, Rome hesabının token hesabına bir SPL transferi gönderir. SOL, o tek transferden sonra wrapped SOL olarak gelir. Hadrian gibi gaz tokeni USDC olan bir zincirde, USDC için ikinci bir adım gerekir: kullanıcının imzaladığı ve gelen wrapper'ı yerel gaza dönüştüren bir Rome işlemi. Diğer herhangi bir SPL token şu yoldan geçer: `spl-solana-to-rome` rotası; bu rota mint'i şu alanda alır: `splAsset`.

### Varlıkları tekrar çıkar

Dışarı köprüleme, gelen akışın tersine çevrilmiş hali değildir. Birden fazla imza içerir ve kullanıcı bunu ana zincirde tamamlar. Şununla teklif alın: `direction` şuna ayarlayın: `from-rome`. `sourceChain` Rome dışı tarafı adlandırır ve `destinationChainId` kullanıcının talep yapacağı zinciri seçer. İkisini de iletin: `destinationChainId` talep zincirini belirleyen budur ve bu olmadan teklif varsayılan olarak Ethereum Sepolia'ya döner, ne derse desin: `sourceChain` şöyle der:

```bash
curl -X POST https://bridge-api.devnet.romeprotocol.xyz/v1/quote \
  -H 'Content-Type: application/json' \
  -d '{
    "asset": "USDC",
    "direction": "from-rome",
    "sourceChain": "eip155:84532",
    "destinationChainId": 84532,
    "romeChainId": "200010",
    "amount": "1000000",
    "sender": { "rome": "0xUSER" },
    "recipient": "0xUSER"
  }'
```

USDC için CCTP üzerinden teklif iki adım döndürür ve kullanıcı ikisini de imzalar:

1. **Rome üzerinde, sırayla iki işlem.** İlki, `RomeBridgeWithdraw` Solana'daki kullanıcının wUSDC'si üzerinde delege hakları verir (`approve_spl`). Bu yetki, bu yakımın miktarıyla tam olarak aynıdır; bu yüzden teklif bunu her seferinde içerir ve kullanıcı her yakımdan önce bunu imzalar. İkincisi wUSDC'yi `RomeBridgeWithdraw`üzerinden yakar, bu da CCTP transferini başlatır. Transferi yakımın karmasıyla kaydedin. Yakım, teklifin `burnToken`olarak adlandırdığı token olan wUSDC'yi harcar, yerel gaz USDC'yi değil. Gaz olarak gelen fonlar yakılan şey değildir; bu yüzden gidiş-dönüş için USDC'yi şu niyetle içeri getirin: `intent: "wrapper"`.
2. **Hedef zincirde, talep.** Sorgula `GET /v1/transfers/{id}` 2. adım `hazır olana kadar`. Daha sonra `mesajı` ve `tasdiki`. Kullanıcı `receiveMessage(message, attestation)` çağrısını, hedef zincirdeki Circle mesaj aktarımcısında yapar (teklif, aktarımcıyı ve CCTP alanını adlandırır). Burada hiçbir şey sponsor edilmez, bu yüzden kullanıcının o zincirde gaza ihtiyacı vardır. Talep karmasını şu şekilde bildirin: `POST /v1/transfers/{id}/steps/2`.

Wormhole üzerinden ETH de aynı yapıya sahiptir. Kullanıcı wETH üzerinde aynı delege haklarını verir, Rome'da wETH'yi yakar ve Wormhole muhafızlarının imzalamasını bekler. Kullanıcı ardından Ethereum'da kendi işlemiyle talep eder: `completeTransferAndUnwrapETH` teklifin adlandırdığı token köprüsünde (`claimTokenBridge`), 2. adımdaki imzalı mesajı (`vaa`) kullanarak.

Bir Solana adresine çekimde talep adımı yoktur. USDC, kullanıcının Solana hesabına çekim yapan tek bir Rome işlemidir. SOL, üç işlem içeren tek bir Rome adımıdır: wSOL üzerinde aynı delege yetkisi, alıcının Solana'daki wSOL token hesabının isteğe bağlı olarak oluşturulması (zaten varsa atlanır) ve şu yoldan çekim: `RomeBridgeWithdraw`.

**İlk çıkış transferi etkinleştirilmiş bir hesap gerektirir.** Bir CCTP yakımı Solana üzerinde bir mesaj hesabı oluşturur ve bunun ücretini ödemek için kullanıcının Rome'daki hesabında yeterince lamport bulunmalıdır. Yeni bir cüzdanda bu yoktur, bu yüzden kullanıcı bir kez etkinleştirene kadar ilk çıkış transferi başarısız olur. Kontrol, hesabın en az 15.000.000 lamport tutmasıdır. Bunları şu şekilde okuyun: `account_lamports(bytes32)` CPI ön derlemesi üzerinde şu adreste `0xff00000000000000000000000000000000000008`, kullanıcının Solana'daki external-auth hesabını geçirerek (CLI bu okumayı sizin için yapar). Etkinleştirme çağrısı `activate()` şu üzerinde yapılır: `SimpleActivator` şu kayıttaki [registry](https://github.com/rome-protocol/rome-registry) sözleşmesi, ve çağrı zincirin gaz tokeni cinsinden bir ödeme taşır. Hadrian'da bu 2 USDC'dir. CLI bunu şununla yapar: `rome activate <chain>`ve `rome bridge --to` hesap hazır değilse durur ve bunu çalıştırmanızı söyler. Rezerv bir yakımı karşılar ve kira, Circle yakımı tasdik ettikten sonra geri gelir; bu yaklaşık 30 dakika sürer. Ondan önceki ikinci bir yakım ya da etkinleştirildikten sonra bakiyesi tüketilmiş bir hesap, `topUpUserPda(lamports)` aynı sözleşmede gerektirir, çünkü `activate()` hesap etkinleştirildikten sonra geri döner. `rome activate` doğru çağrıyı seçer. Gelen transferler için etkinleştirme gerekmez. Teklifte etkinleştirme bir adım olarak yer almaz, bu yüzden uygulamanız ilk çıkış teklifinden önce hesabı kontrol etmeli ve bunu sunmalıdır.

## Kodu oku

* [appia](https://github.com/rome-protocol/appia) — ana zincirden bir uygulama: kullanıcılar USDC'yi ana zincirlerinden getirir ve Rome tarafındaki DeFi'yi oradan ayrılmadan kullanır.
* [rome-bridge-api](https://github.com/rome-protocol/rome-bridge-api) — orkestratör (teklif → doğrula → sponsor).

## Sırada ne var

* [Fonlanmak](/tr/kaynaklar/faucets.md) — aynı köprü yolu yeni bir geliştirme cüzdanını fonlar.
* [Solidity dağıt](/tr/gelistirici-kilavuzlari/deploy-solidity.md) — uygulamanızı Rome'a yerleştirin.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/tr/gelistirici-kilavuzlari/from-home.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
