Skip to content

Releases: nucash-mining/twetch-app

v0.2.3 — start a conversation

Choose a tag to compare

@nucash-mining nucash-mining released this 07 Aug 05:07

Adds the missing ways to begin a DM.

Until now Messages only listed threads that already existed, and a profile offered nothing but Follow — so there was no route into a new conversation at all.

  • Message button on profiles, the round button the web client places beside Follow.
  • Compose button on Messages, opening a people picker you can search by name or by @id.
  • Note to self — opening a conversation with your own account gives a private thread, listed first in the picker.

Both entry points open the existing conversation if there is one and create it on first use.

Creating a conversation was also being requested in the wrong shape: the sealed keys belong in encryptedKeys rather than keys, memberIds lists only the other participants because the API adds the sender itself, and a key has to be sealed for every participant including the sender — otherwise the person who started the thread could not read it. Participants without an identity key are now named in the error rather than failing anonymously.

v0.2.2 — DMs decrypt properly

Choose a tag to compare

@nucash-mining nucash-mining released this 07 Aug 04:31

Fixes direct messages showing as encrypted.

Two separate mistakes, either of which alone would have hidden every message:

The sealed key was read from the wrong field. The client looked for sealedKey; the API sends encryptedKey. No key was ever unwrapped, so every message stayed ciphertext.

Key rotation was ignored. Twetch rotates a conversation key when membership changes. Each message records the keyEpoch it was sealed under, and the API returns the current key plus a historicalKeys map of the earlier ones. That map was dropped, so even with the field name fixed, anything sent before the last rotation would still have been unreadable. Keys are now tracked per epoch and each message is decrypted with the key from its own epoch.

Also fixed along the way:

  • The messages endpoint returns the keys next to the messages, and the client was discarding them. Sending now recovers a key from that endpoint if the conversation list did not carry one, instead of failing.
  • Conversation members were read from members; the field is memberIds, so one-to-one threads could not tell who the other party was.
  • Conversation-list previews decrypt as well, so the inbox shows real text.
  • A message whose key genuinely is not available now says so plainly rather than showing a bare padlock.

v0.2.1 — post actions and images fixed

Choose a tag to compare

@nucash-mining nucash-mining released this 07 Aug 00:52

Fixes the three problems reported against v0.2.0.

Post actions were unclickable. The row of five actions plus the earnings readout overflowed a 360dp phone by 162 pixels, and anything that overflows in Flutter is clipped and stops receiving taps — so like, branch and bookmark were dead. Counts are now abbreviated (1.2k), padding is tighter, and the earnings block scales down instead of pushing the row off-screen.

Images were missing in the meme library, market collections, and NFT art. Three of the four reference shapes Twetch uses were resolving to the wrong URL:

reference why it failed
b://<txid>@1 the output index was dropped, and <txid>.jpg answers with a one-byte body
/v1/media/… the meme library returns API-relative paths that cannot be fetched as-is
<txid>.png collection art is a txid with an extension and lives on the ordinals CDN

The resolver now matches the web client, and each reference produces a candidate list so art that was never mirrored onto api.twetch.com falls through to ordfs.network and media.ordinalswallet.com.

Sales and listings kept working throughout because those use a bare txid, the one shape that was already correct.

Verified by tests rather than by eye: a widget test taps every action at 360dp and asserts the row fits at 320dp, and a live test fetches a real reference of each shape from the API and asserts an actual image comes back.

v0.2.0 — full web-app parity

Choose a tag to compare

@nucash-mining nucash-mining released this 07 Aug 00:16

Android build of the Twetch client, rebuilt to mirror the twetch.com web app.

Install: download twetch-v0.2.0.apk below on your phone and open it. Android will ask you to allow installs from your browser — this build is debug-signed, so it is sideload-only and will not update over a Play Store copy.

What is in it

  • Feed with For You / Latest / Following, quote-branches, reply context, media, polls, earnings and multiplier
  • Post, reply, like, branch, bookmark and pay — all on-chain actions priced exactly as the web client prices them
  • Profiles (posts / replies / likes / collection), threads, bookmarks
  • Explore search across posts, people and NFTs
  • End-to-end encrypted messages
  • Wallet: BSV balance, send, receive, history, NFT holdings, plus WATTx
  • Market: collections, sales, listings, item detail with traits and provenance, and buy / list / delist / transfer
  • Meme Library with folders, format filters and contribution
  • Leaderboard, notifications, and settings with the grey / dark / light themes

Worth knowing

  • No minting. The web client has no mint flow; the figure on a collection page is a historical price stat, not an action.
  • NFTs are BSV only. Twetch's market is BSV ordinals. WATTx appears as a wallet, not an NFT market.
  • Your seed stays in the Android keystore. Signing and transaction building run locally in Twetch's own crypto module with network access blocked; the only server contacted is api.twetch.com, and it only ever receives signatures.
  • Signed writes (like / branch / follow, list / buy / transfer, sending a DM) are implemented against the recovered protocol but have not yet been exercised against a funded account — those are the ones to try first.

Twetch App v0.1.0

Choose a tag to compare

@nucash-mining nucash-mining released this 03 Aug 01:30

Unofficial Twetch Android client.

Install: download twetch-app-v0.1.0.apk below on your phone and open it (you'll need to allow 'install from unknown sources').

Features: seed-phrase sign-in, home feed, post/reply, activity + background notifications, BSV wallet (send/receive), optional WATTx wallet from the same seed. Your seed never leaves the device.

Note: signed with a debug key (fine for sideloading/testing).