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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/web3-connections/create-a-new-web3-connection",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Create a new Web3 connection.

> Initiate a new Web3 connection.

* Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection.



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /connections/wc
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /connections/wc:
    post:
      tags:
        - Web3 connections
      summary: Create a new Web3 connection.
      description: >-
        Initiate a new Web3 connection.


        * Note: After this succeeds, make a request to `PUT
        /v1/connections/wc/{id}` (below) to approve or reject the new Web3
        connection.
      operationId: create
      parameters:
        - $ref: '#/components/parameters/X-Idempotency-Key'
        - $ref: '#/components/parameters/X-End-User-Wallet-Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConnectionRequest'
      responses:
        '201':
          description: Web3 connection initiated successfully
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateConnectionResponse'
        '400':
          description: Invalid data sent
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '500':
          description: Something went wrong
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response:
            Promise<FireblocksResponse<CreateConnectionResponse>> =
            fireblocks.web3Connections.create(web3ConnectionsApiCreateRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<CreateConnectionResponse>> response =
            fireblocks.web3Connections().create(createConnectionRequest,
            idempotencyKey, xEndUserWalletId);
        - lang: Python
          source: >-
            response =
            fireblocks.web3_connections.create(create_connection_request,
            idempotency_key, x_end_user_wallet_id);
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        A unique identifier for the request. If the request is sent multiple
        times with the same idempotency key, the server will return the same
        response as the first request. The idempotency key is valid for 24
        hours.
      required: false
      schema:
        type: string
    X-End-User-Wallet-Id:
      name: X-End-User-Wallet-Id
      in: header
      description: >-
        Unique ID of the End-User wallet to the API request. Required for
        end-user wallet operations.
      required: false
      schema:
        type: string
        format: uuid
  schemas:
    CreateConnectionRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateVaultAccountConnectionRequest'
        - $ref: '#/components/schemas/CreateNcwConnectionRequest'
    CreateConnectionResponse:
      type: object
      properties:
        id:
          type: string
          description: The ID of the Web3 connection initiated.
          example: 4e9e7051-f3b2-48e9-8ee6-b12492552657
        sessionMetadata:
          description: Metadata of the Web3 connection (provided by the DApp).
          allOf:
            - $ref: '#/components/schemas/SessionMetadata'
      required:
        - id
        - sessionMetadata
    CreateVaultAccountConnectionRequest:
      type: object
      properties:
        vaultAccountId:
          type: number
          description: The ID of the vault to connect to the dApp.
          example: 1
        feeLevel:
          type: string
          description: The default fee level. Valid values are `MEDIUM` and `HIGH`.
          example: MEDIUM
          enum:
            - MEDIUM
            - HIGH
        uri:
          type: string
          description: The WalletConnect uri provided by the dapp.
          example: >-
            wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637
        chainIds:
          description: >-
            The IDs of the blockchain networks used in the Web3 connection
            (Currently required in V1 connections only).
          example:
            - ETH
          type: array
          items:
            type: string
      required:
        - vaultAccountId
        - feeLevel
        - uri
    CreateNcwConnectionRequest:
      type: object
      properties:
        ncwId:
          type: string
          description: The ID of the Non-Custodial Wallet to connect to the dApp.
          example: b8337f1d-bd61-4d6c-afc1-4c9d60aa2132
        ncwAccountId:
          type: number
          description: The NCW account ID to connect to the dApp.
          example: 1
        feeLevel:
          type: string
          description: The default fee level. Valid values are `MEDIUM` and `HIGH`.
          example: MEDIUM
          enum:
            - MEDIUM
            - HIGH
        uri:
          type: string
          description: The WalletConnect uri provided by the dapp.
          example: >-
            wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637
        chainIds:
          description: >-
            The IDs of the blockchain networks used in the Web3 connection
            (Currently required in V1 connections only).
          example:
            - ETH
          type: array
          items:
            type: string
      required:
        - ncwId
        - ncwAccountId
        - feeLevel
        - uri
    SessionMetadata:
      type: object
      properties:
        appUrl:
          type: string
        appName:
          type: string
        appDescription:
          type: string
        appIcon:
          type: string
      required:
        - appUrl
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs

````