> ## 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.

# API के माध्यम से Virtual Environments बनाएं

> Tenderly REST API का उपयोग करके single-network और Multichain Virtual Environments के निर्माण को script करें। CI/CD और per-PR environments के लिए उपयोगी।

Scripts, CI/CD jobs, या किसी भी backend से Virtual Environments बनाने के लिए REST API का उपयोग करें। वही endpoints dashboard को back करते हैं।

पूर्ण request और response schemas के लिए, देखें [REST API reference](/virtual-environments/rest-api)।

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

* एक [Tenderly access key](/platform/account/projects/api-tokens)। इसे अपने shell में `TENDERLY_ACCESS_KEY` के रूप में export करें।
* आपके account और project slugs, जो आपके Tenderly Dashboard के URL में उपलब्ध हैं।

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
export TENDERLY_ACCESS_KEY=# the key you copied
```

## एक single-network Virtual Environment बनाएं

<Steps>
  ### API कॉल करें

  अपनी fork और chain configuration के साथ `vnets` endpoint पर `POST` करें:

  ```bash title="testnet-create.sh" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  RESPONSE=$(curl --request POST \
    --url https://api.tenderly.co/api/v1/account/me/project/project/vnets \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
    --data '{
      "slug": "my-staging-testnet-25",
      "display_name": "My Staging TestNet",
      "fork_config":            { "network_id": 1, "block_number": "latest" },
      "virtual_network_config": { "chain_config": { "chain_id": 73571 } },
      "sync_state_config":      { "enabled": false, "commitment_level": "latest" },
      "explorer_page_config":   { "enabled": false, "verification_visibility": "bytecode" }
    }')
  ```

  ### Admin RPC URL निकालें

  response पर `rpcs` array में Admin और Public RPC URLs होते हैं। अपनी बाकी script के लिए Admin RPC को बाहर निकालें:

  ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  ADMIN_RPC=$(echo $RESPONSE | jq -r '.rpcs[] | select(.name == "Admin RPC") | .url')
  ```
</Steps>

## एक Multichain Virtual Environment बनाएं

एक [Multichain Virtual Environment](/virtual-environments/multichain/overview) `multivnets` endpoint के माध्यम से एक ही call में बनाया जाता है। कॉल में सभी networks एक `stack_id` के तहत समूहीकृत होते हैं, जो उनके बीच cross-chain bridging संभव बनाता है।

```bash title="multivnet-create.sh" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl --location 'https://api.tenderly.co/api/v1/account/me/project/project/multivnets' \
  --header 'accept: application/json, text/plain, */*' \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
  --header 'content-type: application/json' \
  --data '{
    "vnets": [
      {
        "slug": "mainnet-staging",
        "fork_config":            { "network_id": 1,     "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 1 } }
      },
      {
        "slug": "arbitrum-staging",
        "fork_config":            { "network_id": 42161, "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 42161 } }
      },
      {
        "slug": "base-staging",
        "fork_config":            { "network_id": 8453,  "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 8453 } }
      }
    ]
  }'
```

`vnets` array में प्रत्येक entry Multichain Virtual Environment के अंदर एक network बनाता है। response एक `stack_id` और Virtual Environment objects का एक array लौटाता है, जिनमें से प्रत्येक के अपने RPC endpoints होते हैं।

Field-by-field schema के लिए [REST API reference](/virtual-environments/rest-api#create-a-multichain-virtual-environment) देखें।

## अगले कदम

* प्रति pull request Virtual Environments प्रोविज़न करने के लिए [Foundry के साथ GitHub Actions सेट करें](/virtual-environments/ci-cd/github-actions-foundry) या [Hardhat](/virtual-environments/ci-cd/github-actions-hardhat)।
* अभी-अभी बनाए गए Virtual Environment पर [Stage contracts](/virtual-environments/ci-cd/stage-contracts)।
* पूर्ण [REST API reference](/virtual-environments/rest-api) ब्राउज़ करें।
