Overview
Track all changes to the Towns Bot SDK. Critical changes are clearly marked and include migration instructions when available.Version 0.0.435
Released December 12, 2025Breaking Changes
Update membership pricing to have fee added on top of price
Migration guide needed: Please review the commit to see what changed. Files affected:packages/sdk/src/tests/multi/spaceWithVariousPriceConfigurations.test.ts
Bots: breaking change - move app initialization into the framework
Migration guide needed: Please review the commit to see what changed. Files affected:packages/bot/src/bot.test.tspackages/bot/src/bot.tspackages/bot/src/smart-account.ts
Add display name field to bot metadata
Migration guide needed: Please review the commit to see what changed. Files affected:packages/bot/src/bot.test.ts
Shared syncer
Migration guide needed: Please review the commit to see what changed. Files affected:packages/sdk/src/client.tspackages/sdk/src/sync-agent/syncAgent.tspackages/sdk/src/syncedStreams.tspackages/sdk/src/syncedStreamsLoop.tspackages/sdk/src/tests/multi_ne/syncedStreams.test.ts- … and 2 more files
Snapshot migration to flush lost session ids
Migration guide needed: Please review the commit to see what changed. Files affected:packages/sdk/src/migrations/migrateSnapshot.tspackages/sdk/src/migrations/snapshotMigration0004.tspackages/sdk/src/tests/unit/snapshotMigration0004.test.ts
Deprecations
Deprecated features will be removed in a future major version. Plan to migrate soon.
- Jt/clean up gamma 1
-
Remove deprecated
getUserData
New Features
- Allow bot owners update their bot profile image in stream (8743554)
- Implement paid commands with x402 facilitator processing (329c59b)
- Add x402 paid command option and update BotCommand type (d5c6022)
- Roles support (8fabbb6)
- Rule builder api to make easier rule structs (682b74e)
- Improve mention behavior dx (7d52a47)
- Add ERC-8004 identity metadata support for bots (f2ef316)
- Sending link attachment (ad639b4)
- Add owner parameter to AppCreated event (9905355)
getSmartAccountFromUserId(16ab699)- Allow bot to tip users (d4039c5)
- Implement SimpleApp as ERC-4337 compatible account abstraction (ee02b5f)
- Sync slash commands on bot initialization (22db3f0)
- Viem +
appAddressandsimpleAppAbi(57df5f1) - Use
sendTipinstead oftip& useTipSentevent in nodes (01a6875) - Upload device keys on
makeTownsBot(b5a1654) - Custom message support using GM (read/write) (de880b7)
- Initialize git project (416bc02)
- Include app address in
APP_PRIVATE_DATA(ad7ecd7) - Send chunked media (3ac8d40)
- Add client version in status response (7aa84f2)
- Sending image / embedded attachment (9439a7a)
- Wrapper to get snapshot data (4a0529e)
- Add
appsSet in members stream view (fb31666) - Ban/unban support (12701d7)
- Support for sending ephemeral messages (60dd39c)
- Simplify handlers, improve
onMessage(01586cd) - Get mentions from messages (d31897d)
- Support for slash commands in threads and replies (473c422)
- Feat(bots) add check permissions API (ae85137)
- Feat(bots) add
createdAtin base payload (eb14495) - Add support for slash commands (5060153)
- Add
towns-bot-prefix to app private data key (17fcca8) - Add
app_addressin stream view (ba0ad9d) bot.onMentionedInThread(c0eeb7e)- Support for uninstall app (54d9cbe)
- App registry rpc client (77a1296)
- Expose towns + rewards shim to spaceDapp (2749e2c)
Bug Fixes
- Use onchain free supply instead of hardcoding (e273ed8)
- Implement LRU cache for CryptoStoreInMemory to prevent memory leaks (885392e)
- Add withRetry wrapper to client-v2 for hash-too-old errors (ac4d254)
- Don’t crash if setting slash commands fail (ce63a5c)
- Filter
getCreate/RegisterAppEventby sender (281c124) - Properly redirect senderAddress to
onTip(13152cc) - Clean generated artifacts and update references after SimpleApp→… (1ebec39)
- Check if we have app address before parsing (61fe988)
- Correct dotenv command separator in test scripts (0bb835d)
- Add
@connectrpc/connect-nodeas dependency (ba3f66c) - Assign correct content to embedded image message attachments (628c968)
- Correct spelling errors (9e29b41)
- Dont use
window.to call crypto function (cb6ef64) - App-registry url uses https (73fea33)
- Update contract address path (f32fbb7)
- ChannelScrubbing.test.ts (a35dda2)
- Add
@connectrpc/connect-webas dev dependency of sdk (5364dc7) - Timeline event replace (fe4edb5)
Documentation
- Improve bot documentation to match new updates to SDK (1df3edf)
- Update AGENTS.md with ephemeral messages (a834b5b)
- AGENTS.md (9a20458)
- Update testing documentation for the sdk package (47f3a84)
How to Update
Update your bot dependencies to the latest version:package.json: