curl --request POST \
  --url https://testnet.walletkit.com/wallets/import \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "network": "Avalanche",
  "name": "User Wallet",
  "owner_id": "58c9095e-24db-43eb-b49d-ddc305c2b6f7",
  "type": "eoa",
  "control_mode": "user",
  "private_key": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
  "user_pin": "111111"
}'
{
  "id": "1427fe1c-226e-4dde-a0a1-d46c4521084b",
  "created_at": "2024-01-31T11:36:06.395674-08:00",
  "network": "Avalanche",
  "name": "User Wallet",
  "owner_id": "58c9095e-24db-43eb-b49d-ddc305c2b6f7",
  "address": "0x1Be31A94361a391bBaFB2a4CCd704F57dc04d4bb"
}

Headers

X-WalletKit-Project-ID
string
required

Your WalletKit Project ID can be found on the API Keys page in the WalletKit Dashboard.

Authorizations

Authorization
string
headerrequired

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
network
enum<string>
required
Available options:
Ethereum,
Polygon,
Base,
Avalanche,
Polkadot,
Vara
name
string
required
owner_id
string | null

An ID that you can use to associate the wallet with a user in your application. e.g. user uuid. When creating wallets for the same owner_id across different networks, the same seed phrase will be used.

control_mode
enum<string>
required

Defines whether the developer or the user controls the wallet. When control_mode is developer, the developer_secret must be provided. When control_mode is user, the user_pin must be provided.

Available options:
developer,
user
type
enum<string> | null

Defines whether the wallet address is an externally owned address (EOA) derived from the owner's key pair or address of the smart contract controlled by the owner's key pair.

Available options:
eoa,
contract
private_key
string | null
mnemonic_phrase
string | null
developer_secret
string | null

On testnet, the developer_secret is always "testnet-secret". On mainnet, the developer_secret is set by the developer during account activation.

user_pin
string | null

A 6-digit numeric pin that is only known to the user, set during wallet creation. This pin is required to sign transactions from this wallet.

Response

200 - application/json
id
string
required
created_at
string
required
network
enum<string>
required
Available options:
Ethereum,
Polygon,
Base,
Avalanche,
Polkadot,
Vara
name
string | null
owner_id
string | null
address
string
required