Migration Overview
The migration endpoints import an existing user base into the platform in bulk, instead of creating users one by one through Create User. All of them require the user:create permission.
Migrate User With Wallet (Single)
Creates one user together with a wallet holding an address the user already has. The address is trimmed, lower-cased and recorded as a self-custody wallet (custody: false) on the chain named by chainid, labelled with the user's email (or externalid). Unless kyc_sent is true, the platform then sends its KYC token(s) to that address on every network of the chain, asynchronously. See the overview for the identity, KYC and duplicate rules.
Migrate Users With Wallets (Bulk)
Migrates up to 500 users that already have an address in one request. Each row is processed like the single endpoint and reported on its own: the request answers 200 even when some rows are skipped or failed. Every row is validated first; one invalid row (for example a missing chain_id) rejects the whole request.
Migrate Users With Wallets (CSV)
Migrates users that already have an address from an uploaded CSV file. Rows are processed like the bulk endpoint and the response has the same shape. Limits: file at most 5 MB, at most 500 data rows.
Migrate User Without Wallet (Single)
Creates one user and asks the custody provider for a wallet on the default network of the chain named by chainid. The user is stored synchronously; the wallet (custody: true) is created asynchronously and appears in List User Wallets once custody answers. Unless kycsent is true, the platform then sends its KYC token(s) to the new wallet on every network of the chain. See the overview for the identity, KYC and duplicate rules.
Migrate Users Without Wallets (Bulk)
Migrates up to 500 users in one request; a custody wallet is created asynchronously for each created user. Each row is processed like the single endpoint and reported on its own: the request answers 200 even when some rows are skipped or failed. Every row is validated first; one invalid row (for example a missing chain_id) rejects the whole request.
Migrate Users Without Wallets (CSV)
Migrates users from an uploaded CSV file; a custody wallet is created asynchronously for each created user. Rows are processed like the bulk endpoint and the response has the same shape. Limits: file at most 5 MB, at most 500 data rows.