---
title: "Update a blockchain"
method: PUT
path: "/blockchain_link/blockchains/{blockchainId}"
tags: ["Blockchain link (Beta)"]
---

# Update a blockchain

`PUT /blockchain_link/blockchains/{blockchainId}`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/blockchain_link/blockchains/{blockchainId}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/blockchain_link/blockchains/:blockchainId/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates the declared properties of an existing blockchain identified by its ID. Only the fields supplied in the request are modified.

## Path parameters

- `blockchainId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- BlockchainDeclaredProperties: Declared properties for blockchain configuration (create/update API and response) Only the fields sent by the API and returned in list/create/update responses.
  - `chainName` string, required: Human-readable name of the blockchain.
  - `chainId` number, required: EVM chain ID of the blockchain.
  - `symbolName` string, required: Native asset symbol of the blockchain.
  - `decimals` number: Number of decimals for the native asset.
  - `rpcUrls` string[], required: RPC endpoint URLs for the blockchain.
  - `environmentType` 'ENVIRONMENT_TYPE_MAINNET' | 'ENVIRONMENT_TYPE_TESTNET', required: Network environment (mainnet or testnet).
  - `blockExplorerUrl` string: Base URL of the block explorer.
  - `blockExplorerTransactionPath` string: Path template for a transaction on the block explorer.
  - `blockExplorerAddressPath` string: Path template for an address on the block explorer.
  - `networkId` number: EVM network ID of the blockchain.
  - `hasFee` boolean: Whether the blockchain charges transaction fees.
  - `isPoa` boolean: Whether the blockchain uses proof-of-authority consensus.
  - `hasLayeredFee` boolean: Whether the blockchain uses a layered fee model.
  - `nodeType` 'NODE_TYPE_CORE_GETH' | 'NODE_TYPE_FANTOM' | 'NODE_TYPE_ERIGON' | 'NODE_TYPE_PARITY' | 'NODE_TYPE_BESU': Node client type for the blockchain.
  - `transactionFormat` number: Transaction format identifier.
  - `baseAssetTenantIds` string[]: Tenant IDs that share this base asset.
  - `explorerApiUrl` string: Block explorer API base URL.
  - `explorerApiKey` string: API key for the block explorer API.
  - `isTraceEnabled` boolean: Whether trace/debug RPC methods are enabled.
  - `rpcAuth` BlockchainRpcAuth: Discriminated RPC auth payload. Sent on create/update so backend can distinguish "no auth" from "field unchanged" on PUT updates. Credential values are stored inside declaredProperties and fetched at activation time; they are deliberately not carried through workflow context.
    - `type` 'RPC_AUTH_BASIC' | 'RPC_AUTH_BEARER' | 'RPC_AUTH_CUSTOM_HEADER', required: Authentication scheme used when calling the RPC endpoint.
    - `username` string: Username for RPC_AUTH_BASIC authentication.
    - `password` string: Password for RPC_AUTH_BASIC authentication.
    - `token` string: Bearer token for RPC_AUTH_BEARER authentication.
    - `headerName` string: Header name for RPC_AUTH_CUSTOM_HEADER authentication.
    - `headerValue` string: Header value for RPC_AUTH_CUSTOM_HEADER authentication.

## Response `200`

OK

- UpdateBlockchainResponse
  - `blockchain` Blockchain, required: Blockchain entity
    - `id` string, required: Unique blockchain identifier.
    - `blockchainState` 'BLOCKCHAIN_STATE_CREATED' | 'BLOCKCHAIN_STATE_ACTIVATING' | 'BLOCKCHAIN_STATE_ACTIVATED' | 'BLOCKCHAIN_STATE_DEACTIVATING' | 'BLOCKCHAIN_STATE_DEACTIVATED' | 'BLOCKCHAIN_STATE_TECHNICAL_FAILURE', required: Current lifecycle state of the blockchain.
    - `declaredProperties` BlockchainDeclaredProperties, required: Declared properties for blockchain configuration (create/update API and response) Only the fields sent by the API and returned in list/create/update responses.
      - `chainName` string, required: Human-readable name of the blockchain.
      - `chainId` number, required: EVM chain ID of the blockchain.
      - `symbolName` string, required: Native asset symbol of the blockchain.
      - `decimals` number: Number of decimals for the native asset.
      - `rpcUrls` string[], required: RPC endpoint URLs for the blockchain.
      - `environmentType` 'ENVIRONMENT_TYPE_MAINNET' | 'ENVIRONMENT_TYPE_TESTNET', required: Network environment (mainnet or testnet).
      - `blockExplorerUrl` string: Base URL of the block explorer.
      - `blockExplorerTransactionPath` string: Path template for a transaction on the block explorer.
      - `blockExplorerAddressPath` string: Path template for an address on the block explorer.
      - `networkId` number: EVM network ID of the blockchain.
      - `hasFee` boolean: Whether the blockchain charges transaction fees.
      - `isPoa` boolean: Whether the blockchain uses proof-of-authority consensus.
      - `hasLayeredFee` boolean: Whether the blockchain uses a layered fee model.
      - `nodeType` 'NODE_TYPE_CORE_GETH' | 'NODE_TYPE_FANTOM' | 'NODE_TYPE_ERIGON' | 'NODE_TYPE_PARITY' | 'NODE_TYPE_BESU': Node client type for the blockchain.
      - `transactionFormat` number: Transaction format identifier.
      - `baseAssetTenantIds` string[]: Tenant IDs that share this base asset.
      - `explorerApiUrl` string: Block explorer API base URL.
      - `explorerApiKey` string: API key for the block explorer API.
      - `isTraceEnabled` boolean: Whether trace/debug RPC methods are enabled.
      - `rpcAuth` BlockchainRpcAuth: Discriminated RPC auth payload. Sent on create/update so backend can distinguish "no auth" from "field unchanged" on PUT updates. Credential values are stored inside declaredProperties and fetched at activation time; they are deliberately not carried through workflow context.
        - `type` 'RPC_AUTH_BASIC' | 'RPC_AUTH_BEARER' | 'RPC_AUTH_CUSTOM_HEADER', required: Authentication scheme used when calling the RPC endpoint.
        - `username` string: Username for RPC_AUTH_BASIC authentication.
        - `password` string: Password for RPC_AUTH_BASIC authentication.
        - `token` string: Bearer token for RPC_AUTH_BEARER authentication.
        - `headerName` string: Header name for RPC_AUTH_CUSTOM_HEADER authentication.
        - `headerValue` string: Header value for RPC_AUTH_CUSTOM_HEADER authentication.
    - `createdAtUtc` number, required: Creation timestamp (epoch milliseconds, UTC).
    - `updatedAtUtc` number, required: Last update timestamp (epoch milliseconds, UTC).
    - `validationSessionId` string: Validation session data (optional - only present if validation session exists)
    - `validationStatus` 'VALIDATION_STATUS_PENDING' | 'VALIDATION_STATUS_IN_PROGRESS' | 'VALIDATION_STATUS_SUCCEEDED' | 'VALIDATION_STATUS_FAILED' | 'VALIDATION_STATUS_TECHNICAL_FAILURE': Status of the latest validation session.
    - `validationCreatedAtUtc` number: Validation session creation timestamp (epoch milliseconds, UTC).
    - `validationUpdatedAtUtc` number: Validation session last update timestamp (epoch milliseconds, UTC).
    - `validationCompletedAtUtc` number: Validation session completion timestamp (epoch milliseconds, UTC).
    - `validationFailureReasons` string[], required: Reasons the latest validation failed, if any.
    - `failedStep` 'FAILED_STEP_CONFIGURATION' | 'FAILED_STEP_RESOURCES_ALLOCATION' | 'FAILED_STEP_TEST_TX_EXTERNAL_TO_FIREBLOCKS' | 'FAILED_STEP_TEST_TX_FIREBLOCKS_TO_FIREBLOCKS': Business step at which the activation flow failed. Absent when no failure has been recorded.
  - `message` string, required: Human-readable result message.

## Other responses

- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
