PDS MOOver Info

This page is to help you decide if you want to use PDS MOOver to move your Atmosphere account to a new service provider (PDS). TLDR (You should still read the whole thing), at least read and follow the precautions section.

Info

PDS MOOver is a set of tools to help you migrate to a new service provider (PDS), keep your account backed up, and recover it if something goes wrong. The creator or host of this tool will not be able to help you recover your account if something goes wrong. So be advised you and your service provider (PDS) admin may be on your own besides helpful answers and understand the risk you take in doing an account movement.

Precautions

Migrations can be a potentially dangerous operation. It is recommended to follow these few steps to protect your account and identity.

  • During migration make sure to do not leave the page
  • It is recommended to use a desktop computer for this process due to the amount of time it can take.
  • Your account is not actually fully moved over to the new PDS till you receive a code in your email and enter it on PDS MOOver, this is the final step.
  • Your data will not be deleted from Bluesky(or your previous PDS) during migration. If you find you are missing any pictures or videos after the move you can use the Missing Blobs tool to recover those from your previous PDS.

At the end of your migration and before you move you will be asked if you'd like to sign up for PDS MOOver's backup service and to add a rotation key. Both of these are recommended and secure your account if your PDS ever goes down, allowing for account recovery.

Sign the papers

Are there other migrators?

YES! A lot has changed since PDS MOOver was first released, and a good chance if you are moving to a larger service provider they may already have a migration tool that runs a bit faster since they can do first part support.

Both are great options, and in many cases if you are going to those service providers will probably get a better more streamline experience from them, of course we can still moove you there as well!

Why does it ask me to sign in on my PDS? (OAuth)

This version of PDS MOOver never sees the password of your current account. Instead you are sent to your own PDS to sign in, and your PDS asks you to approve exactly the permissions a migration needs. That is the same atproto OAuth flow other apps use, and you can revoke it any time from your PDS's account page (https://your-pds.com/account).

What it asks for, and why:

  • Read your email address so the new-account form can be prefilled.
  • Request a service token for createAccount: this is how the new PDS knows you really control the identity it is creating an account for.
  • Read your Bluesky preferences so they can be copied to the new PDS. Because this is a granular permission, your birth date preference is not visible and is not copied; set it again in the app if you use it.
  • Manage your identity: request the emailed PLC token and sign the PLC operation that points your identity at the new PDS. This is the big one and it is what a migration fundamentally is.
  • Manage your account status: switch your old account off for you once the move is done, so it stops being a second live copy of your account. This is only needed on the old PDS, and only PDSs that allow it (the Bluesky reference PDS does).

Reading your repo and blobs from the old PDS uses public endpoints, so no extra permission is needed for that. The new account still needs a password because it does not exist yet; you pick it in the form and it is only ever sent to the new PDS.

If your old PDS does not allow that last one, the migration still finishes: it just leaves the old account switched on, which you can then turn off yourself.

Turning off your old account

After the PLC operation your identity points at the new PDS and the network follows it. Your old PDS still has the account switched on though. PDS MOOver normally switches it off for you at the end of the move, using the account permission we already requested on your old account. Not every PDS allows that (older PDS software does not know the permission), and we never switch it off while blobs of yours are still missing, because a deactivated account stops handing its blobs out and we would need your old password to get them.

Leaving the old account on is not dangerous, but apps may show a stale copy of your profile and your old PDS keeps emitting events for it, so tidy up:

  1. Open https://<your old pds>/account (for Bluesky that is bsky.social/account) and sign in with your old handle and your old password.
  2. Choose Deactivate account. Deactivate, not delete: deactivated keeps your data around in case you ever want to move back.

Or from the Bluesky application settings -> account -> Deactivate account

Or use the Turn Off page (or the box on the migration's final step), which asks for your old handle and password and does it for you. Your old password goes only to your old PDS; PDS MOOver never stores it.

Rotation keys

A rotation key is a recovery key you hold that is allowed to update your Atmosphere identity. Normally only your PDS holds one. If your PDS disappears or goes rogue, a rotation key of your own lets you point your identity at a new PDS without the old one's cooperation, following the steps in Adversarial ATProto PDS Migration or the Atmosphere account recovery guide. At the end of a migration, and any time from the Rotation Keys page, you can see every key on your identity, add one generated in your browser or paste one you already hold, untick keys you no longer want, and set their priority order. Keys already on your identity are kept unless you untick them; when you move, your old PDS's own key is left out since it no longer hosts you. Unticking your own PDS's key means it can no longer update your identity for you, so only do that if you hold a key of your own. The private half of a generated key is shown once; save it somewhere safe.

Backups

PDS MOOver now supports backups. These are automated backups of your account saving your repo (posts,likes,etc), and your blobs(picture/videos) from your AT Proto account to a cloud base object store (S3). This is a free service for individual accounts and stores the backups on PDS MOOver's servers. These backups will happen every 2 hours from the time you sign up. We are expecting to lower this as we see how the service does. On login, you will be asked if you'd like to add a rotation key to your account. It is highly recommended to do this if you do not already have one. This is the only way you can recover your account in the event of a PDS failure or rogue account takeover.

Just like your AT Proto data, your backed up data is also public. You can access your data much the same way you do on your PDS by calling these endpoints. Since these behave much the same as the PDS they are public.

  • /xrpc/com.atproto.sync.getRepo?did="your did" to get a copy of your repo's CAR export
  • /xrpc/com.atproto.sync.getBlob?did="your did"&cid="cid of the blob"

Sign up for backups or manage an existing backup from the Backups page.

Restore

Backups without a restore option aren't very good backups. So to pair well with our new backup service PDS MOOver now also offers recovery of your account and restoring from a backup. To use this you must have your Private Rotation Key. You can add one to your account either after migration or during backups sign up. This recovery process follows much the same process as outlined in the Adversarial ATProto PDS Migration blog post by @retr0.id. Start a restore from the Restore page.

I'm here for Blacksky, Is there a video guide?

Blacksky has their own amazing server side migration tool at move.blacksky.community.


But if you want to use PDS MOOver, @sharpiepls.com has made an amazing video guide on how to use PDS MOOver to move your bluesky account to blacksky.app. It shows the older password login, but the rest of the flow is the same.

Can I move back to bsky.social?

Yes, if you originally signed up for your account with Bluesky you can now move back to their PDS. You can use this link to move your account back bsky.social migration page.

A couple of things to know. You need the password your old bsky.social account had, if you do not remember it you can reset the password on Bluesky's login page. Your handle and email stay as they originally were before you migrated away from Bluesky. You can change them after the migration is completed on the Bluesky app/website.

I can't log in?/Says my account is deactivated?

When you move to a non Bluesky PDS you have to do an extra step on login.

  1. On the Sign in screen for bsky.app or on the app click the top input titled "Hosting provider" and has a globe icon and says Bluesky Social"
  2. Click the tab labeled custom
  3. In the input for server address you put the same URL you used for the new PDS URL with the https:// like so https://example.com
  4. Click done and enter your new handle(or email) and password

My account says Invalid Handle?

It's a bit of a bug sometimes. I'm not sure what causes it, but usually mentioning your handle in a post or reply fixes it. Like @fullhandle.newpds.com, may or may not highlight it blue and autofill it but make sure you have the full handle and the @ like that. Can also check your handle with the Bluesky Debug Page. If you see green, and it says one of them pass you should be fine and just may take a while to update.

!!!!!HELP!!!!!

If you're having issues with PDS MOOver first of all, I'm very sorry. I have tested this to the best of my ability, but PDS migrations do come with risks. I would recommend getting with the owner of the PDS and seeing where the account stands with tools like pdsls.

The tool is designed to be able to be re ran IF you set the Advanced Options flags. For example, lets say if it created the account, repo is there but some blobs are missing. You can uncheck everything but "Migrate Missing Blobs", "Migrate Prefs", and "Migrate PLC record" and it will pick up after the account repo migration. If you don't ever see the "Please enter your PLC Token" and enter the token sent to your email, you can just forget about it and call it a day if it's too much. Your old account is still active and working.

Alright account migrated, now what?

Welcome to your new PDS! You can login to your new PDS on Bluesky's login screen by selecting "Hosting provider" and entering your PDS url. Turn off your old account, make sure you have a rotation key that you control in case your PDS disappears overnight so you can regain your account, and sign up for backups so you always have a copy.

Why is it so SLOW?

Everything happens client side, and the blob uploads take a while. Nothing runs in parallel. Blob uploads happen one at a time; once one is done, the next goes. This is done just to keep it as simple as possible and to hopefully limit the chance of failures on uploads. My personal account takes about 20-30ish mins to move with 1,700ish blobs at 800mb on a 1gig internet connection.

Can I check out the code anywhere?

Yep! PDS MOOver is 100% open source and can find the code on tangled.org.

Backups page

PDS MOOver can provide worry-free backups of your Atmosphere account. This is a free service for individual accounts and stores the backups on PDS MOOver's servers. Just like your AT Proto data, this is also public. On sign up, you will be asked if you'd like to add a rotation key to your account. A rotation key is a recovery key that allows you to restore your account if your PDS ever goes down. If you're already signed up for backups, then sign in here to manage them.

Restore page

Use this page to restore your Atmosphere account on a new PDS using your private rotation key. It's intended to be used in the worst case scenario, and not for normal account migrations. We do not need your password since your rotation key is what is used to recover your account. Once your account has been moved to a new PDS we will also attempt to restore your repo and blobs(pictures/videos) from our backups.

Rotation Keys page

A rotation key is a recovery key. It lets you make changes to your account. Things like changing your handle, or where you login at (your PDS). The server you login to usually holds one and allows you to make these changes via a confirmation email, but having your own rotation key allows you to recover your Atmosphere identity in the event that it is ever needed.

Missing Blobs page

If pictures or videos went missing during a migration, this finds the blobs your current PDS is missing and copies them over from your previous PDS. Sign in with your current account; the old PDS is found from your identity's history and, as long as you did not turn the old account off, needs no login.

You can sign in with the normal PDS redirect, or with an app password if your PDS does not support that redirect or will not grant this tool permission to upload blobs. An app password is made in your account's settings (on Bluesky: Settings โ†’ App Passwords) and you can revoke it when you are done. The app-password sign-in is remembered on this browser so a long, rate-limited import can be picked up again after a refresh; signing out forgets and revokes it.

Find a PDS page

This page lists the PDS hosts in the PDS MOOver directory, verified first, then by how many accounts a host serves. You can search by hostname or name, and pick a host to jump straight into the migration flow with it selected. Verification is set by hand by a PDS MOOver admin (@pds.dad) it is never assigned automatically to protect users from migrating to a rogue PDS and appearing in the directory is not a guarantee, so read the precautions and do your own research before moving!