BotKit has no notion of account migration. A bot's actor object carries no alsoKnownAs, the inbox listener chain has no handler for Move, and a bot has no way to point its followers somewhere else. None of the three strings alsoKnownAs, Move, or movedTo appears anywhere in packages/botkit/src/.
The fedidevs repeater account on channel.org is losing its home because the instance shuts down in October, and its maintainer considered rebuilding it as a BotKit bot, but assumed the followers couldn't come along. With the current code that assumption is right, though it doesn't have to be: for a Mastodon account to move to a BotKit bot, the bot only needs to advertise the old account as an alias.
The protocol is the one Mastodon has used since 2019. The old actor sends a Move activity whose object is itself and whose target is the new actor. Followers' servers fetch the target, check that its alsoKnownAs lists the old actor, then follow the new actor and unfollow the old one. The old actor also gets a movedTo property pointing at the new one. FEP-7628 writes this down, adds a pull mode in which the new actor sends the Move, and defines copiedTo for an old actor that stays active after the move. It reached FINAL status on August 26, 2026.
What Fedify already provides
Fedify ships the Move activity class, and its actor classes expose alsoKnownAs as aliases/aliasIds and movedTo as successor/successorId. copiedTo is not in Fedify's vocabulary yet. What's missing is the migration flow and public API in BotKit itself.
Decisions already made
Two actors count as linked when the target's alsoKnownAs contains the origin. This is the check Mastodon runs on every incoming Move, and the one its migration form runs before it lets a user move at all. FEP-7628 also accepts FEP-c390 identity proofs and rel-me links as ways to link actors, but supporting only alsoKnownAs keeps BotKit interoperable with everything that implements migration today.
Only push mode is in scope for now. Mastodon drops any Move whose actor is not its object, so a pull-mode Move would not reach anyone on the largest implementation. copiedTo is out of scope too, both because Fedify doesn't have it and because nothing in this tree needs an old actor that stays active.
BotKit has no notion of account migration. A bot's actor object carries no
alsoKnownAs, the inbox listener chain has no handler forMove, and a bot has no way to point its followers somewhere else. None of the three stringsalsoKnownAs,Move, ormovedToappears anywhere in packages/botkit/src/.The fedidevs repeater account on channel.org is losing its home because the instance shuts down in October, and its maintainer considered rebuilding it as a BotKit bot, but assumed the followers couldn't come along. With the current code that assumption is right, though it doesn't have to be: for a Mastodon account to move to a BotKit bot, the bot only needs to advertise the old account as an alias.
The protocol is the one Mastodon has used since 2019. The old actor sends a
Moveactivity whoseobjectis itself and whosetargetis the new actor. Followers' servers fetch the target, check that itsalsoKnownAslists the old actor, then follow the new actor and unfollow the old one. The old actor also gets amovedToproperty pointing at the new one. FEP-7628 writes this down, adds a pull mode in which the new actor sends theMove, and definescopiedTofor an old actor that stays active after the move. It reached FINAL status on August 26, 2026.What Fedify already provides
Fedify ships the
Moveactivity class, and its actor classes exposealsoKnownAsasaliases/aliasIdsandmovedToassuccessor/successorId.copiedTois not in Fedify's vocabulary yet. What's missing is the migration flow and public API in BotKit itself.Decisions already made
Two actors count as linked when the target's
alsoKnownAscontains the origin. This is the check Mastodon runs on every incomingMove, and the one its migration form runs before it lets a user move at all. FEP-7628 also accepts FEP-c390 identity proofs and rel-me links as ways to link actors, but supporting onlyalsoKnownAskeeps BotKit interoperable with everything that implements migration today.Only push mode is in scope for now. Mastodon drops any
Movewhose actor is not its object, so a pull-modeMovewould not reach anyone on the largest implementation.copiedTois out of scope too, both because Fedify doesn't have it and because nothing in this tree needs an old actor that stays active.