> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Multichain quickstart

> एक Multichain Virtual Environment बनाएं, इसे Foundry या Hardhat में wire करें, accounts को fund करें, और एक cross-chain transaction end-to-end चलाएं।

यह ट्यूटोरियल आपको शून्य से एक Multichain Virtual Environment पर एक cross-chain transaction तक ले जाता है। अंत तक आपके पास एक Virtual Environment होगा जो एक से अधिक networks में फैला होगा, Bridge Module उनके बीच messages को relay करेगा, आपके contracts प्रत्येक network पर deployed होंगे, प्रत्येक chain पर funded accounts होंगे, और एक working cross-chain transaction एकीकृत dashboard timeline में दिखाई देगा।

यदि आपने अभी तक [overview](/virtual-environments/multichain/overview) नहीं पढ़ा है, तो पहले वह करें। यह बताता है कि Multichain Virtual Environment क्या है, RPC URLs कैसे संरचित हैं, और Virtual Chain IDs का क्या अर्थ है।

## शुरू करने से पहले

आपको चाहिए:

* multichain क्षमताएं सक्षम के साथ एक Tenderly account। यदि आप Virtual Environment निर्माण के दौरान कई networks जोड़ने का विकल्प नहीं देखते हैं, तो [हमसे संपर्क करें](https://tenderly.co/contact-us)।
* एक wallet private key जिसे आप test environment में उपयोग करने को तैयार हैं। इसे अपने shell में `PRIVATE_KEY` के रूप में सेट करें।
* स्थानीय रूप से स्थापित [Foundry](https://www.getfoundry.sh/) या [Hardhat](https://hardhat.org/)।

बाकी ट्यूटोरियल Ethereum mainnet, Arbitrum, Optimism, और Base मानता है, लेकिन वही flow किसी भी समर्थित networks के संयोजन के लिए काम करता है।

## ट्यूटोरियल चलाएं

<Steps>
  ### Multichain Virtual Environment बनाएं

  Tenderly Dashboard में, **Virtual Environments** खोलें और एक नया शुरू करें। Ethereum mainnet डिफ़ॉल्ट रूप से पहले से चयनित है। network picker से Arbitrum, Optimism, और Base जोड़ें। सूची में Production chains पहले दिखाई देते हैं, testnets नीचे।

  प्रत्येक network के लिए आप चुन सकते हैं:

  * **Fork point.** latest block से fork करें (डिफ़ॉल्ट) या एक विशिष्ट block number, timestamp, या date चुनें।
  * **Chain ID.** डिफ़ॉल्ट Virtual Chain ID छोड़ दें जब तक कि आपके पास इसे override करने का कोई कारण न हो। [Virtual Chain IDs](/virtual-environments/multichain/overview#virtual-chain-ids) section tradeoffs को समझाता है।

  Virtual Environment को save करें। Tenderly द्वारा assigned slug पर ध्यान दें। slug यहाँ से आपके द्वारा उपयोग किए जाने वाले हर RPC URL का हिस्सा है।

  ### Bridge Module को सक्षम करें

  Virtual Environment के settings खोलें और **Bridging** को On पर toggle करें। एक बार सक्षम होने पर, Bridge Module Virtual Environment में प्रत्येक network पर cross-chain events के लिए देखता है और उन्हें स्वचालित रूप से destination chain पर relay करता है। यह किन protocols और networks को कवर करता है, इसके लिए [Bridges](/virtual-environments/multichain/bridges) देखें।

  ### अपने project में RPCs wire करें

  आपके Virtual Environment में प्रत्येक network का एक अनुमानित आकार के साथ एक अद्वितीय RPC URL है:

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  https://virtual.<network>.<region>.rpc.tenderly.co/<org-slug>/<virtual-env-slug>
  ```

  Virtual Environment detail page से RPC URLs कॉपी करें और उन्हें अपनी project configuration में जोड़ें।

  <Tabs>
    <Tab title="Foundry">
      ```toml title="foundry.toml" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
      [rpc_endpoints]
      mainnet  = "https://virtual.mainnet.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
      arbitrum = "https://virtual.arbitrum.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
      optimism = "https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
      base     = "https://virtual.base.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>"
      ```

      Virtual Environment explorer के विरुद्ध एक deployment verify करने के लिए, `--verifier-url` को उसी RPC पर सेट करें। deploy पूरा होते ही आपको dashboard में एक verified contract मिलेगा।
    </Tab>

    <Tab title="Hardhat">
      ```typescript title="hardhat.config.ts" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
      const config: HardhatUserConfig = {
        networks: {
          tenderly_mainnet: {
            url: "https://virtual.mainnet.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
            accounts: [process.env.PRIVATE_KEY],
          },
          tenderly_arbitrum: {
            url: "https://virtual.arbitrum.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
            accounts: [process.env.PRIVATE_KEY],
          },
          tenderly_optimism: {
            url: "https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>",
            accounts: [process.env.PRIVATE_KEY],
          },
        },
      };
      ```
    </Tab>
  </Tabs>

  ### प्रत्येक network पर accounts fund करें

  अपने Virtual Environment के लिए [Unlimited Faucet](/virtual-environments/unlimited-faucet) खोलें और उस address को टॉप-अप करें जिससे आप deploy करेंगे। यह प्रत्येक network पर करें, क्योंकि balances per network रखे जाते हैं। deploy के लिए Native currency पर्याप्त है। यदि आपके contracts tokens ले जाते हैं, तो उन्हें भी टॉप-अप करें।

  ### Deploy और एक cross-chain transaction ट्रिगर करें

  Virtual Environment से जुड़े प्रत्येक network पर अपने contracts deploy करें।

  <Tabs>
    <Tab title="Foundry">
      ```bash showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
      forge create Counter \
        --private-key $PRIVATE_KEY \
        --rpc-url https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug> \
        --broadcast \
        --verify \
        --verifier-url https://virtual.optimism.eu.rpc.tenderly.co/<org-slug>/<virtual-env-slug>
      ```
    </Tab>

    <Tab title="Hardhat">
      ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
      npx hardhat run scripts/deploy.ts --network tenderly_mainnet
      ```
    </Tab>
  </Tabs>

  एक बार जब contracts प्रत्येक network पर deploy हो जाते हैं, तो एक cross-chain transaction भेजें जैसे आप सामान्य रूप से करेंगे (उदाहरण के लिए एक LayerZero `send` call)। Bridge Module चालू के साथ, destination-side delivery तुरंत पोस्ट की जाती है। Virtual Environment dashboard खोलें और आपको एकीकृत timeline पर source और destination दोनों transactions दिखाई देने चाहिए।

  round-trip की स्पष्ट रूप से पुष्टि करने के लिए [Bridges](/virtual-environments/multichain/bridges#transaction-views) Source/Destination filter का उपयोग करें।
</Steps>

अब आपके पास cross-chain bridging के साथ एक working Multichain Virtual Environment है।

## आगे क्या try करें

अब जब ट्यूटोरियल काम करता है, तो यहाँ बताया गया है कि उसी setup को real workflows पर कैसे लागू करें:

<CardGroup cols={2}>
  <Card title="CI में deployments को स्वचालित करें" href="/virtual-environments/ci-cd/github-actions-foundry">
    GitHub Actions का उपयोग करके हर push पर हर network पर parallel में deploy करें। CI/CD guides matrix workflow और आपको आवश्यक secrets दिखाते हैं।
  </Card>

  <Card title="अपने frontend को stage करें" href="/virtual-environments/dapp-ui/wagmi">
    अपने dApp को Virtual Environment RPCs पर पॉइंट करें और अपनी team और समीक्षकों को एक environment दें जो पूरे multichain flow का अभ्यास करता है।
  </Card>

  <Card title="API के माध्यम से Virtual Environments बनाएं" href="/virtual-environments/develop/create-virtual-environment-via-api">
    `multivnets` endpoint एक call में एक Multichain Virtual Environment बनाता है। per-PR provisioning के लिए उपयोगी।
  </Card>

  <Card title="Bridge failures का test करें" href="/virtual-environments/multichain/bridges#manual-bridge-controls">
    Manual bridge controls आपको gas starvation, duplicate deliveries, modified payloads, और अन्य failure modes को deterministically stage करने देते हैं।
  </Card>
</CardGroup>

## यह भी देखें

* [Multichain Virtual Environments overview](/virtual-environments/multichain/overview)
* [Bridges](/virtual-environments/multichain/bridges)
* [Unlimited Faucet](/virtual-environments/unlimited-faucet)
* [Admin RPC](/virtual-environments/admin-rpc)
