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

# Import Wallet

> <Warning>
This endpoint is not enabled by default. [Contact Dfns](https://support.dfns.co) to have it activated.
</Warning>

Dfns secures private keys by generating them as MPC key shares in our decentralized key management network.  This happens by default when you [create a wallet](https://docs.dfns.co/api-reference/wallets/create-wallet).

In some circumstances, however, you may need to import an existing wallet (an existing private key) into Dfns infrastructure, instead of creating a brand new wallet with Dfns and transfer funds to it. As an example, you might want to keep an existing wallet if its address is tied to a smart contract which you don't want to re-deploy.

In such a case, Dfns exposes this wallet import API endpoint, which can be used in conjunction with our [import SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet).   Note this is intended to be used only to migrate wallets when first onboarding onto the Dfns platform.

<Danger>
Dfns can not guarantee the security of imported wallets, as we have no way to control who had access to the private key prior to import.  For this reason, this feature is restricted to Enterprise customers who have signed a contractual addendum limiting our liability for imported keys.  Please contact your sales representative for more information.
</Danger>




## OpenAPI

````yaml /openapi.yaml post /wallets/import
openapi: 3.1.0
info:
  version: 1.807.0
  title: Dfns
servers:
  - url: https://api.dfns.io
    description: Default - Europe
  - url: https://api.uae.dfns.io
    description: UAE
  - url: https://api.dfns.ninja
    description: <Deprecated> Staging
security: []
paths:
  /wallets/import:
    post:
      tags:
        - Wallets
      summary: Import Wallet
      description: >
        <Warning>

        This endpoint is not enabled by default. [Contact
        Dfns](https://support.dfns.co) to have it activated.

        </Warning>


        Dfns secures private keys by generating them as MPC key shares in our
        decentralized key management network.  This happens by default when you
        [create a
        wallet](https://docs.dfns.co/api-reference/wallets/create-wallet).


        In some circumstances, however, you may need to import an existing
        wallet (an existing private key) into Dfns infrastructure, instead of
        creating a brand new wallet with Dfns and transfer funds to it. As an
        example, you might want to keep an existing wallet if its address is
        tied to a smart contract which you don't want to re-deploy.


        In such a case, Dfns exposes this wallet import API endpoint, which can
        be used in conjunction with our [import
        SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet).  
        Note this is intended to be used only to migrate wallets when first
        onboarding onto the Dfns platform.


        <Danger>

        Dfns can not guarantee the security of imported wallets, as we have no
        way to control who had access to the private key prior to import.  For
        this reason, this feature is restricted to Enterprise customers who have
        signed a contractual addendum limiting our liability for imported keys. 
        Please contact your sales representative for more information.

        </Danger>
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 100
                curve:
                  type: string
                  enum:
                    - ed25519
                    - secp256k1
                    - stark
                protocol:
                  anyOf:
                    - type: string
                      enum:
                        - CGGMP24
                        - FROST
                        - FROST_BITCOIN
                        - GLOW20_DH
                        - KU23
                    - type: string
                      enum:
                        - CGGMP21
                minSigners:
                  type: integer
                  exclusiveMinimum: 0
                encryptedKeyShares:
                  type: array
                  items:
                    type: object
                    properties:
                      signerId:
                        type: string
                        minLength: 1
                      encryptedKeyShare:
                        type: string
                        minLength: 1
                    required:
                      - signerId
                      - encryptedKeyShare
                  minItems: 1
                network:
                  type: string
                  enum:
                    - Algorand
                    - AlgorandTestnet
                    - Aptos
                    - AptosTestnet
                    - ArbitrumOne
                    - ArbitrumSepolia
                    - ArcTestnet
                    - AvalancheC
                    - AvalancheCFuji
                    - BabylonGenesis
                    - BabylonTestnet5
                    - Base
                    - BaseSepolia
                    - Berachain
                    - BerachainBepolia
                    - Bitcoin
                    - BitcoinSignet
                    - BitcoinTestnet3
                    - BitcoinCash
                    - Bob
                    - BobSepolia
                    - Bsc
                    - BscTestnet
                    - Canton
                    - CantonTestnet
                    - Cardano
                    - CardanoPreprod
                    - Concordium
                    - ConcordiumTestnet
                    - Celo
                    - CeloAlfajores
                    - Codex
                    - CodexSepolia
                    - CosmosHub4
                    - CosmosIcsTestnet
                    - Dogecoin
                    - DogecoinTestnet
                    - Ethereum
                    - EthereumClassic
                    - EthereumClassicMordor
                    - EthereumSepolia
                    - EthereumHolesky
                    - EthereumHoodi
                    - FantomOpera
                    - FantomTestnet
                    - FlareC
                    - FlareCCoston2
                    - FlowEvm
                    - FlowEvmTestnet
                    - Hedera
                    - HederaTestnet
                    - Ink
                    - InkSepolia
                    - InternetComputer
                    - Ion
                    - IonTestnet
                    - Iota
                    - IotaTestnet
                    - Kaspa
                    - Kusama
                    - KusamaAssetHub
                    - Litecoin
                    - LitecoinTestnet
                    - Near
                    - NearTestnet
                    - Optimism
                    - OptimismSepolia
                    - Origyn
                    - Plasma
                    - PlasmaTestnet
                    - Plume
                    - PlumeSepolia
                    - Paseo
                    - PaseoAssetHub
                    - Polkadot
                    - PolkadotAssetHub
                    - Polygon
                    - PolygonAmoy
                    - Polymesh
                    - PolymeshTestnet
                    - Race
                    - RaceSepolia
                    - SeiAtlantic2
                    - SeiPacific1
                    - Solana
                    - SolanaDevnet
                    - Starknet
                    - StarknetSepolia
                    - Stellar
                    - StellarTestnet
                    - Sui
                    - SuiTestnet
                    - Tezos
                    - TezosGhostnet
                    - Tempo
                    - TempoModerato
                    - Tsc
                    - TscTestnet1
                    - Ton
                    - TonTestnet
                    - Tron
                    - TronNile
                    - Westend
                    - WestendAssetHub
                    - Xdc
                    - XdcApothem
                    - XLayer
                    - XLayerSepolia
                    - XrpLedger
                    - XrpLedgerTestnet
                externalId:
                  type: string
              required:
                - curve
                - protocol
                - minSigners
                - encryptedKeyShares
                - network
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wallet'
      security:
        - authenticationToken: []
          userActionSignature: []
components:
  schemas:
    Wallet:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^wa-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: ID of the wallet.
          example: wa-5pfuu-9euek-h0odgb6snva8ph3k
        network:
          type: string
          description: Network this wallet is bound to.
          enum:
            - Algorand
            - AlgorandTestnet
            - Aptos
            - AptosTestnet
            - ArbitrumOne
            - ArbitrumSepolia
            - ArcTestnet
            - AvalancheC
            - AvalancheCFuji
            - BabylonGenesis
            - BabylonTestnet5
            - Base
            - BaseSepolia
            - Berachain
            - BerachainBepolia
            - Bitcoin
            - BitcoinSignet
            - BitcoinTestnet3
            - BitcoinCash
            - Bob
            - BobSepolia
            - Bsc
            - BscTestnet
            - Canton
            - CantonTestnet
            - Cardano
            - CardanoPreprod
            - Concordium
            - ConcordiumTestnet
            - Celo
            - CeloAlfajores
            - Codex
            - CodexSepolia
            - CosmosHub4
            - CosmosIcsTestnet
            - Dogecoin
            - DogecoinTestnet
            - Ethereum
            - EthereumClassic
            - EthereumClassicMordor
            - EthereumSepolia
            - EthereumHolesky
            - EthereumHoodi
            - FantomOpera
            - FantomTestnet
            - FlareC
            - FlareCCoston2
            - FlowEvm
            - FlowEvmTestnet
            - Hedera
            - HederaTestnet
            - Ink
            - InkSepolia
            - InternetComputer
            - Ion
            - IonTestnet
            - Iota
            - IotaTestnet
            - Kaspa
            - Kusama
            - KusamaAssetHub
            - Litecoin
            - LitecoinTestnet
            - Near
            - NearTestnet
            - Optimism
            - OptimismSepolia
            - Origyn
            - Plasma
            - PlasmaTestnet
            - Plume
            - PlumeSepolia
            - Paseo
            - PaseoAssetHub
            - Polkadot
            - PolkadotAssetHub
            - Polygon
            - PolygonAmoy
            - Polymesh
            - PolymeshTestnet
            - Race
            - RaceSepolia
            - SeiAtlantic2
            - SeiPacific1
            - Solana
            - SolanaDevnet
            - Starknet
            - StarknetSepolia
            - Stellar
            - StellarTestnet
            - Sui
            - SuiTestnet
            - Tezos
            - TezosGhostnet
            - Tempo
            - TempoModerato
            - Tsc
            - TscTestnet1
            - Ton
            - TonTestnet
            - Tron
            - TronNile
            - Westend
            - WestendAssetHub
            - Xdc
            - XdcApothem
            - XLayer
            - XLayerSepolia
            - XrpLedger
            - XrpLedgerTestnet
        address:
          type: string
          description: Wallet address on its corresponding network.
        signingKey:
          type: object
          properties:
            id:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^key-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: Key id.
              example: key-01snl-t56gb-j8tsok0vn802p80i
            scheme:
              $ref: '#/components/schemas/KeyScheme'
            curve:
              $ref: '#/components/schemas/KeyCurve'
            publicKey:
              type: string
              description: Hex-encoded value of the public key.
              example: >-
                e2375c8c9e87bfcd0be8f29d76c818cabacd51584f72cb2222d49a13b036d84d3d
            delegatedTo:
              type: string
              minLength: 1
              maxLength: 64
              pattern: ^us-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
              description: The end user ID the key (and wallet) is delegated to.
              example: us-6b58p-r53sr-rlrd3l5cj3uc4ome
          required:
            - id
            - scheme
            - curve
            - publicKey
          description: Details about the key underlying the wallet.
        status:
          type: string
          enum:
            - Active
            - Inactive
            - Archived
          description: Wallet status.
        dateCreated:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            wallet was created.
          example: '2023-04-14T20:41:28.715Z'
        dateDeleted:
          type: string
          description: >-
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string when
            wallet was deleted.
          example: '2023-04-14T20:41:28.715Z'
        name:
          type: string
          maxLength: 100
          description: Wallet nickname.
        custodial:
          type: boolean
          description: >-
            Whether the wallet is owned by an end user (non-custodial), or by
            your organization (custodial).
        externalId:
          type: string
          maxLength: 100
          description: >-
            User-defined value that can be used to correlate the entity with an
            external system.
        tags:
          type: array
          items:
            type: string
            pattern: ^[a-zA-Z0-9_.:/+-]{1,100}$
            description: Wallet Tag.
          maxItems: 10
          description: List of tags.
        validatorId:
          type: string
          minLength: 1
          maxLength: 64
          pattern: ^cv-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
          description: >-
            Id of the validator on which the wallet is created for Canton
            networks
          example: cv-7jeof-m584r-p35ucm37ko3cqgts
      required:
        - id
        - network
        - signingKey
        - status
        - dateCreated
        - custodial
        - tags
      example:
        id: wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx
        network: Ethereum
        address: '0x00e3495cf6af59008f22ffaf32d4c92ac33dac47'
        name: trading hot wallet
        signingKey:
          id: key-6ece3-9l565-xxxxxxxxxxxxxxxx
          scheme: ECDSA
          curve: secp256k1
          publicKey: e2375c8c9e87bfcd0be8f29d76c818cabacd51584f72cb2222d49a13b036d84d3d
        status: Active
        dateCreated: '2023-04-14T20:41:28.715Z'
        custodial: true
        tags: []
    KeyScheme:
      type: string
      description: The cryptographic scheme for the key.
      enum:
        - ECDSA
        - EdDSA
        - Schnorr
    KeyCurve:
      type: string
      enum:
        - ed25519
        - secp256k1
        - stark
      description: The elliptic curve for the key.
  securitySchemes:
    authenticationToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        **Bearer Token:** Used to authenticate API requests.

        More details how to generate the token: [Authentication
        flows](https://docs.dfns.co/api-reference/auth/login-flows)
    userActionSignature:
      type: apiKey
      in: header
      name: X-DFNS-USERACTION
      description: >-
        **User Action Signature:** Used to sign the change-inducing API
        requests.

        More details how to generate the token: [User Action Signing
        flows](https://docs.dfns.co/api-reference/auth/signing-flows)

````