Title: NEWTIV Migrate
Author: newtiv
Published: <strong>October 15, 2026</strong>
Last modified: October 15, 2026

---

Search plugins

![](https://ps.w.org/newtiv-migrate/assets/icon.svg?rev=3747990)

# NEWTIV Migrate

 By [newtiv](https://profiles.wordpress.org/newtiv/)

[Download](https://downloads.wordpress.org/plugin/newtiv-migrate.1.0.0.zip)

 * [Details](https://kea.wordpress.org/plugins/newtiv-migrate/#description)
 * [Reviews](https://kea.wordpress.org/plugins/newtiv-migrate/#reviews)
 *  [Installation](https://kea.wordpress.org/plugins/newtiv-migrate/#installation)
 * [Development](https://kea.wordpress.org/plugins/newtiv-migrate/#developers)

 [Support](https://wordpress.org/support/plugin/newtiv-migrate/)

## Description

You are building a new web or mobile application and want to keep the people who
already have an account on your WordPress site. NEWTIV Migrate exports, in one file:

 * **users**: username, email, name, registration date, roles, and optionally their**
   password hashes**, profile fields, WooCommerce addresses and any other user meta
   you name;
 * **content**: posts, pages, products and custom post types, with categories, tags,
   custom fields and author;
 * **comments** (without IP addresses) and the **media library** list with file 
   addresses.

Because the password hashes are included, your application can check a user’s usual
password exactly like WordPress does (phpass for older accounts, bcrypt for WordPress
6.8 and later), then store it in its own format at the first sign-in. Nobody has
to reset their password.

**Security first**

 * The file is always encrypted with a passphrase you choose: key derived with Argon2id,
   content encrypted with XChaCha20-Poly1305 (libsodium secretstream). Without the
   passphrase the file cannot be read.
 * The file is streamed to your browser and never stored on the server.
 * Only administrators can export, and they must type their account password again.
   Five wrong passwords lock the export for 15 minutes.
 * The last 20 exports are listed: who, when, how many records, with or without 
   password hashes.
 * Privacy: the export log stores, for each export, the date, the administrator’s
   username and IP address. It is deleted when the plugin is uninstalled.
 * Password hashes are optional: untick them for a content-only export.

**Large sites**: users and content are read in batches of 200. From the command 
line: `wp newtiv-migrate export site.ntvm` (see `wp help newtiv-migrate export`).

This plugin does not connect to any external service.

### File format

 1. First line: `NTVMIG1`.
 2. Second line: a JSON header with the key derivation parameters (`kdf.alg` = argon2id13,`
    kdf.opslimit`, `kdf.memlimit`, `kdf.salt` in base64) and the secretstream header(`
    header`, base64).
 3. Then frames: a 4-byte big-endian length followed by the ciphertext of one secretstream
    message. The last frame has the FINAL tag; a file without it is incomplete.

Key: `crypto_pwhash(32, passphrase, salt, opslimit, memlimit, ARGON2ID13)`. Decrypted,
the frames form NDJSON, one record per line, each with a `type`: `meta`, `user`,`
term`, `post`, `media`, `comment`, then `end` with the counts, to check that nothing
is missing.

Any libsodium binding can read it: PyNaCl (Python), libsodium-wrappers (Node.js),
ext-sodium (PHP).

User records carry `pass` and `pass_format` (`wp-bcrypt`, `phpass`, `bcrypt`, `md5`,`
argon2`). Meta values are exported exactly as stored in WordPress (arrays stay PHP-
serialized).

## Installation

 1. Upload the plugin and activate it.
 2. Go to **Tools  NEWTIV Migrate**.
 3. Choose what to export, choose a passphrase (or generate one), type your password,
    download.
 4. Keep the passphrase somewhere safe, separately from the file.

## FAQ

### Can someone use the file to sign in to my site?

No. A password hash cannot be used to sign in; it can only be used to check a password
someone types. And the file itself cannot be read without the passphrase.

### I lost the passphrase.

The file cannot be opened. Make a new export.

### My host says the sodium extension is missing.

The plugin needs PHP’s sodium extension (included with PHP since 7.2, enabled by
almost every host). Without it, the export button stays disabled.

## Reviews

![](https://secure.gravatar.com/avatar/ee359798586b7b0f89f518ab0005f209efff16f6e27303ee5c64147b0cc04056?
s=60&d=retro&r=g)

### 󠀁[Happy](https://wordpress.org/support/topic/happy-136/)󠁿

 [tah12](https://profiles.wordpress.org/tah12/) October 15, 2026

Always happy to see your releases. Great job!!

 [ Read all 1 review ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/)

## Contributors & Developers

“NEWTIV Migrate” is open source software. The following people have contributed 
to this plugin.

Contributors

 *   [ newtiv ](https://profiles.wordpress.org/newtiv/)

[Translate “NEWTIV Migrate” into your language.](https://translate.wordpress.org/projects/wp-plugins/newtiv-migrate)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/newtiv-migrate/), check
out the [SVN repository](https://plugins.svn.wordpress.org/newtiv-migrate/), or 
subscribe to the [development log](https://plugins.trac.wordpress.org/log/newtiv-migrate/)
by [RSS](https://plugins.trac.wordpress.org/log/newtiv-migrate/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First release: encrypted export of users (with password hashes), content, comments
   and media list; WP-CLI command; export log.

## Meta

 *  Version **1.0.0**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/newtiv-migrate/)
 * Tags
 * [export](https://kea.wordpress.org/plugins/tags/export/)[headless](https://kea.wordpress.org/plugins/tags/headless/)
   [migration](https://kea.wordpress.org/plugins/tags/migration/)[password](https://kea.wordpress.org/plugins/tags/password/)
   [users](https://kea.wordpress.org/plugins/tags/users/)
 *  [Advanced View](https://kea.wordpress.org/plugins/newtiv-migrate/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/newtiv-migrate/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/newtiv-migrate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/newtiv-migrate/reviews/)

## Contributors

 *   [ newtiv ](https://profiles.wordpress.org/newtiv/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/newtiv-migrate/)