Taler - Roadmap
Scheduled For Release 2027-12-31
Features that are not required for 1.10 but we still want to have as soon as possible. Great playground for volunteers and late evenings.
- 0009373: [exchange] batch_ensure_coin_known not yet used [2d] (Christian Grothoff)
- 0011533: [merchant backend] MR/compat/fix: consider using su instead of sudo for taler-merchant-dbconfig (Florian Dold)
- 0010243: [libeufin-bank webui] Change logo and color for bank SPA (vlada.svirsh)
- 0010424: [merchant portal webui] country selector for phone fields (vlada.svirsh)
- 0010395: [wallet (all platforms)] I18N: For DE, use "Schweizer Franken" instead of "Swiss Francs" (Stefan)
- 0007339: [wallet (WebExtension)] withdrawal triggered on insufficient balance does not work in demo (due to fees)
- 0009210: [libeufin-nexus] Handle unsupported optional administrative orders
- 0007662: [libeufin-bank] error does not provide the field where the validation is made
- 0009001: [libeufin (general)] Abort early when a user cancel it's request
- 0009356: [libeufin-bank] Check passwords against a blocklist
- 0006582: [wallet (all platforms)] checking for refunds of a purchase should be possible from within the wallet [meta]
- 0011663: [other] Prevent replay attacks on totp
- 0010796: [exchange KYC customer webui] Exchange KYC SPA: The language switcher is dysfuntional
- 0011216: [merchant portal webui] PW change possible without any MFA
- 0010795: [merchant portal webui] Merchant Backoffice: Internationalisation tags for an error message need to be added
- 0009139: [merchant backend] In contract terms, store tax percent in addition to tax amount
- 0010837: [wallet (all platforms)] Visible feedback/support button needed
- 0010828: [Cyclos integration] Support other API auth method
- 0010040: [merchant backend] No possibility to add the tax on order and not on item...
- 0010697: [merchant backend] consider allowing flagging orders as "one-off" orders that do not show up in wallets' transaction history when unconfirmed
- 0007886: [wallet-core] consider adding log categories instead of file-based log tags
- 0008775: [wallet-core] consider allowing all non-final wallet-core states to be suspended/resumed
- 0009019: [specification] clarify usage of currency specification
- 0007658: [qtart] support threaded crypto workers
- 0007298: [wallet-core] wallet should allow optionally specifying (and remembering) sender information for p2p payments
- 0007866: [wallet-core] transactions should keep some history data
- 0007850: [wallet-core] aborting: "revive" or "resurrect" back to pending
- 0011287: [deployment and operations] set DNS CAA records in DNS (vecirex)
- 0009710: [exchange] post-kyc redirect is suboptimal
- 0011427: [wallet (Android App)] Extend check-langauges.py to use an LLM (by option; to automate translations, by human choice)
- 0010350: [documentation] Tutorial "How to do donations"[25h] (vlada.svirsh)
- 0010540: [e-commerce integrations] need turnstile for typo3 [10d]
- 0007916: [wallet-core] support STEFAN parameters [estimate: 20h]
- 0009811: [wallet (all platforms)] Support pagination / infinite scrolling in wallet UIs
- 0008734: [wallet (WebExtension)] bulk deletion
- 0009546: [sandcastle (containerized demo deployment)] deploy up woocommerce in sandcastle-ng
- 0011727: [wallet (Android App)] built-in update push notification
- 0010577: [merchant backend] Refund needs identifier or such [4d] (Christian Grothoff)
- 0011496: [deploymerizer] Update depolymerizer-bitcoin in sync with latest taler-rust and bitcoind [1w] (Antoine A)
- 0011603: [deploymerizer] Bitcoin Prepared Transfer subject format (Antoine A)
- 0011604: [deploymerizer] New burn address design (Antoine A)
- 0010975: [merchant portal webui] merchant backend should allow entering instances as admin
- 0007344: [libeufin-bank] withdraw target unclear (vlada.svirsh)
- 0006400: [libeufin-nexus] consider doing faster re-tries for some scheduled operations (Antoine A)
- 0007506: [libeufin (general)] Add helpers to generate test data. (Antoine A)
- 0006399: [libeufin-nexus] review and document date/time/timezone handling (Antoine A)
- 0010915: [quality checkpoint] backup and sync supported [meta]
- 0010082: [specification] design document for (CRDT) incremental sync protocol (avalos)
- 0010887: [merchant portal webui] SPA should support inventory-based templates (sebasjm)
- 0010888: [wallet (all platforms)] support inventory-based templates [meta]
- 0010886: [wallet-core] wallet-core should support inventory-based templates (Florian Dold)
- 0011452: [wallet (all platforms)] Design for inventory-based templates (vlada.svirsh)
- 0011605: [paivana] allow enabling/disabling paywall based on user-agent
- 0010784: [deployment and operations] test setup instructions for swiyu [3d] (vecirex)
- 0011519: [taler-rust] Ensure compatibility for friendly human format of duration in taler-rust and gnunet
- 0009453: [merchant backend] enable data export [10d] (Christian Grothoff)
- 0011457: [specification] need API spec for data export/import [2d] (Christian Grothoff)
- 0008964: [wallet (Android App)] implement mock banking app for Android to demonstrate wallet integration
- 0010809: [wallet (WebExtension)] Bank SPA and WebEx wallet: String harmonisation
- 0010797: [exchange KYC customer webui] Exchange KYC SPA: Terms of Service need to be adjusted
- 0011406: [merchant-pos-terminal (Android App)] product order in POS app keeps changing (Bohdan)
- 0010038: [wallet (Android App)] Sending money NFC option hidden from user
- 0011310: [wallet (all platforms)] allow encrypting wallet DB exports
- 0010175: [wallet (WebExtension)] add (password-based) access protection to WebExtension wallet [discussion]
- 0010267: [wallet (Android App)] Colors for incoming and outgoing transactions
- 0011230: [wallet (all platforms)] user requests custom wire transfer subject in deposit from wallet
- 0010429: [wallet (WebExtension)] Redesign wallet screens [meta] (vlada.svirsh)
- 0010676: [wallet (WebExtension)] webext wallet should show shopping URL(s) for currency (Emmanuel)
- 0010882: [merchant backend] ProductSold and MinimalInventoryProduct (Bohdan)
- 0010559: [Magnet Bank integration] Idempotent transaction (Antoine A)
- 0010825: [deployment and operations] taler-rust lacks 'dist' target in build system (Antoine A)
- 0010344: [documentation] Tutorial "Wallet installation on Ubuntu Touch" (vlada.svirsh)
- 0009721: [deployment and operations] Improve Taler systemd service security
- 0009506: [wallet (all platforms)] trusted recepients
- 0009370: [wallet (all platforms)] bank dialects: netzbon
- 0011056: [exchange] Debian packages may break running system on upgrade
- 0010804: [quality checkpoint] enable grouping of statistics
- 0010681: [wallet (all platforms)] inform users more clearly about uninstall == loss of funds
- 0011028: [robocop] MG recommends adding support for OFAC to robocop
- 0009898: [exchange] Parent issue for cleanup tasks post withdraw refactor and new refresh protocol
- 0009901: [exchange] Adapt testing/test_exchange_api_twisted to new melt/reveal API
- 0009828: [exchange] Redesign recoup to accomodate for changes in withdraw and refresh API's (Christian Grothoff)
- 0007868: [wallet-core] recoup transaction not spec'ed in DD37 (Florian Dold)
- 0011008: [merchant portal webui] Replace all error sign for required fields
- 0007855: [wallet-core] All transactions should have a separate "finished" timestamp, sorting should be possible by this finished timestamp
- 0010962: [merchant portal webui] Merchant: Field string limit set?
- 0010932: [merchant backend] When KYC can be continued, notify merchants by email and SMS
- 0010151: [exchange KYC customer webui] group queries by start/end dates [3d] (sebasjm)
- 0010383: [sandcastle (containerized demo deployment)] The Taler Exchange for Demo should choose updated Terms of Service (ToS) for different languages (EN, FR, DE) (Stefan)
- 0010881: [wallet (all platforms)] Notification/banner about possible money loss
- 0010558: [Magnet Bank integration] Store in-db sync cursor (Antoine A)
- 0009542: [wallet (all platforms)] transaction history weirdness
- 0009476: [wallet (Android App)] TOTP authenticator app with support for Taler amounts
- 0010840: [taler-rust] Common HTTP client
- 0010851: [wallet (all platforms)] setting to configure / turn off loging
- 0010849: [merchant portal webui] button to generate and download various statistic-reports (schanzen)
- 0010841: [merchant backend] need design for interaction of money pots with merchant
- 0010818: [Web site(s)] Simple instructions for Taler-naive users on how to install and use Taler wallets and payments via TOPS
- 0009248: [merchant-pos-terminal (Android App)] Provide tax information in Point-of-Sales app
- 0009081: [wallet (Android App)] Missing taxes information for order
- 0009566: [wallet (WebExtension)] iOS wallet should show unconfirmed pay-merchant transactions and allow confirming later
- 0010336: [documentation] Video tutorial "Inventory management" [45h] (vlada.svirsh)
- 0010337: [documentation] Video tutorial "Order creation" [45h] (vlada.svirsh)
- 0010339: [documentation] Video tutorial "QR templates" [40h] (vlada.svirsh)
- 0009224: [Web site(s)] add list of exchange operators to web site (Stefan)
- 0009645: [libeufin-bank] Lock account on password auth failure (Antoine A)
- 0008337: [specification] Review/revise Section 4.4 of DD35 (vlada.svirsh)
- 0009651: [merchant backend] When changing the instance password we may want to revoke old access tokens (schanzen)
- 0009869: [exchange KYC customer webui] form should only include valid fields (sebasjm)
- 0009958: [specification] write a design document on how to render insufficient balance hints (vlada.svirsh)
- 0009991: [libeufin (general)] Disable admin wire gateway API endpoints in production (Antoine A)
- 0010221: [wallet-core] Support OBG initiated withdrawals (Antoine A)
- 0010230: [wallet (WebExtension)] update missing screenshots in dd53 (sebasjm)
- 0010288: [merchant-pos-terminal (Android App)] PoS app does not tolerate mixed currencies in backend products (avalos)
- 0010421: [quality checkpoint] Testing in the TOPS Staging Environment (Stefan)
- 0010640: [wallet (iOS App)] Terms of service for the app store and iOS wallet app (Stefan)
- 0010641: [wallet (all platforms)] Internationalisation for the donation authority feature in wallet apps (starting with Android, later iOS to follow) (Stefan)
- 0010700: [wallet (all platforms)] unclaimed pay transactions are in database, but not shown anywhere in the UI [design-required] (vlada.svirsh)
- 0010174: [deployment and operations] ansible script to import new sanction list is dated, needs to be improved (Florian Dold)
- 0009885: [exchange] AML programs should validate the FORM_ID and form attributes
- 0010656: [libeufin (general)] warnings when compiling libeufin
- 0010644: [wallet (WebExtension)] Webextension does not work well with donation demo when external wallet pays
- 0010609: [exchange] age restriction tests are failing due to wrong signature (oec)
- 0010569: [merchant portal webui] Add option to test ẁebhooks
- 0009500: [libeufin-bank] desire to print to PDF
- 0009017: [other] test exchange business shutdown procedure, support alert in wallets
- 0010422: [wallet (Android App)] Isolate wallet-core logic and types into separate module to make testing easier
- 0010423: [wallet (Android App)] build and publish qtart versions from Buildbot
- 0010381: [deployment and operations] filter "lost" denomination keys from /keys when evaluating key availability in uptimekuma
- 0010245: [deployment and operations] dockerized automated deployment fails if user enters short password
- 0010138: [wallet-core] Double-spending after Restore handled badly
- 0009953: [qtart] unexplained numeric constants in js_talercrypto_eddsa_sign
- 0008923: [wallet (Android App)] allow retrying after scanning (peer-push-credit) QR code
- 0008711: [libeufin-nexus] get nexus to work with EBICS dialect of Raiffeisen bank
- 0010249: [deployment and operations] Supply chain security: automatically check dependencies
- 0010222: [qtart] automate qtart builds in Buildbot
- 0010215: [wallet (Android App)] Scanning p2p payment via NFC requires clicking on notification on Xiaomi
- 0010192: [libeufin-bank webui] Cashout is disabled redirect
- 0010149: [wallet-core] implement a new notification type for payment sounds
- 0010188: [documentation] Missing example for Fakebank configuration
- 0010076: [documentation] extend TOPS test manual with aggregate kyc in deposit transactions
- 0010122: [specification] form id value should be specified in GANA
- 0010134: [wallet (all platforms)] Abstract away choice of location of DB for UI-devs
- 0009729: [exchange KYC customer webui] gracefully handle the "upload too large" case, maybe maximum upload size could be 16 MB
- 0009826: [exchange KYC customer webui] support VQF 902.15 (life insurance)
- 0009547: [sandcastle (containerized demo deployment)] deploy up joomla in sandcastle-ng
- 0008710: [wallet-core] validate exchange coin history [estimate: 8h]
- 0007988: [wallet-core] clean up TypeScript declarations and parsers for protocol types
- 0007806: [wallet (Android App)] Lots of 'complaints' when compiling wallet
- 0010012: [deployment and operations] demo/test/head fail to start on system reboot
- 0010087: [wallet (all platforms)] wallet shows bank accounts as "not verified", even after completing withdraw
- 0009963: [qtart] concurrency issue with using JS_GetArrayBuffer?
- 0010029: [wallet (Android App)] allow using wallet with http exchange
- 0009927: [libeufin (general)] make dist creates non-standard names
- 0009761: [wallet (Android App)] android wallet should show kycPaytoHash in dev mode for transaction with pending KYC
- 0009396: [wallet (iOS App)] Adding a known account during deposit create a navigation maze
- 0008859: [merchant backend] it should honor age restriction from template
- 0008916: [libeufin-bank] Idle logout of demo bank website
- 0008383: [wallet (iOS App)] complete accessibility
- 0008894: [wallet (iOS App)] Pull-to-Refresh (if no pending transactions exist)
- 0009353: [wallet-core] check denomination revocation logic
- 0008943: [wallet-core] integration test for recoup-refresh is incomplete
- 0009828: [exchange] Redesign recoup to accomodate for changes in withdraw and refresh API's (Christian Grothoff)
- 0006565: [wallet-core] wallet should try recoup when payment fails with certain error codes
- 0007448: [wallet-core] wallet operation that receive amount in the request should specify if the amount include fee
- 0009887: [exchange AML officer webui] we need a place for the VQF reporting in the UI
- 0009820: [wallet-core] Inconsistentcy in denominations with and without age restrictions during refresh
- 0009831: [wallet (Android App)] Android wallet should show state and error message for exchange entries
- 0009386: [auditor-webui] account for bank wire transfer fees (incoming/outgoing)
- 0009862: [wallet (iOS App)] Copy+paste of paytoUri produces twice percent-encoded string on iOS 18.x
- 0009760: [wallet (iOS App)] iOS wallet should show kycPaytoHash in dev mode for transaction with pending KYC
- 0009812: [wallet-core] wallet-core request confirmPay should not wait for payment success
- 0009807: [quality checkpoint] QC wallet protocol version handling
- 0009785: [wallet (all platforms)] Unfinished transactions in history should lead to respective flows
- 0009790: [wallet (WebExtension)] Unfinished transactions in history should lead to respective flows
- 0009670: [wallet (all platforms)] More reactive payment flows flows
- 0009908: [libeufin-bank webui] consider asking for name in wire transfer form of the libeufin bank
- 0009626: [taler-harness] Add planchet collision tests to harness
- 0009895: [wallet (all platforms)] write DD to harmonize handling of unfinished payment transactions
- 0009897: [wallet (all platforms)] Encrypt mobile database
- 0009837: [wallet-core] consider implementing dev experiment to fake currency specifications
- 0009830: [wallet (Android App)] in Android wallet, user should have to confirm after scanning a dev-experiment QR code
- 0009818: [documentation] Point-of-Sales App documentation not helpful for setup
- 0007698: [qtart] qtart should support opening a unix domain socket for the daemonized wallet
- 0009802: [mailbox] Mailbox should honor a delivery period
- 0009523: [other] Allow connecting the merchant backend to the bank revenue API via token in URI
- 0009793: [exchange] whe there is a missing attr in the context the exchange doesn't inform about it
- 0008829: [wallet-core] wallet-core should handle deleted coins in deposit groups gracefully [5h]
- 0009206: [specification] nirvana for regional currency setup
- 0008232: [other] tooling to remove duplicated config options
- 0008378: [wallet (iOS App)] Payment: Detail view should show deadlines
- 0008319: [libeufin-nexus] Unify Depo/Nexus schema and use a common wire gateway implementation
- 0008881: [wallet-core] add better/high-level wallet-core request to check B-i withdrawal status
- 0009026: [libeufin-bank] Support memory-hard password hashing method
- 0009222: [wallet (Android App)] interface between Android wallet and other apps should be documented
- 0008258: [wallet-core] consider providing fluent interface for amount/date types, review date and amount type hierarchy [12h]
- 0007997: [libeufin-bank] user should create admin account to setup libeufin bank
- 0009020: [wallet (Android App)] Unify progress bar handling
- 0008687: [documentation] Taler Ops WWW uses Bitmaps (PNGs) where SVGs would be more applicable
- 0008379: [wallet (iOS App)] link payment and refund (~ 1 day)
- 0009749: [wallet (Android App)] Error messages layout implementation
- 0009287: [taler-harness] implement DB migration tests for libeufin (and others) in taler-harness
- 0008248: [wallet-core] get wallet-core codebase ready for code review [60+h]
- 0009763: [wallet (iOS App)] iOS wallet should show the *raw* amount as the maximum depositable amount
- 0007699: [wallet-core] wallet should support different types of instructed amounts (before and after fees)
- 0008310: [libeufin-nexus] does ebics-submit support DB notification?
- 0009251: [wallet-core] increase max retry timeout for exchange entry when not required by any active tranaction [5h]
- 0008437: [wallet-core] implement tests for transaction filtering [estimate: 3h]
- 0008633: [specification] specify metrics and health checks we want for Taler server-side components [estimate: 6h]
- 0009696: [wallet-core] support for pending kyc on bank accounts
- 0009654: [wallet-core] add TOPS and NetzBon exchange to builtin exchanges in wallet-core
- 0009276: [exchange] Exchange should expose internal transitions/events on KYC accounts [design-required]
- 0008742: [wallet (all platforms)] i18n for all wallets [ongoing]
- 0008848: [wallet-core] hide network errors for refresh transactions outside dev mode, show instead in dependent transactions [4h]
- 0009698: [wallet-core] Detect bank account duplicate
- 0007998: [wallet-core] Accountless registration broken repurchase detection for GNS delegations
- 0008172: [libeufin-bank webui] import payto URI should allow QR codes
- 0007434: [wallet (WebExtension)] icons in transaction history unclear
- 0007518: [wallet (WebExtension)] search transaction
- 0008942: [libeufin-bank webui] check /config when doing a request to account-info-endpoint returns 400 [4hs]
- 0008767: [wallet (WebExtension)] observavility events: add a filter to show events trigger by actions called in the current screen. [6hs]
- 0008642: [specification] design document for extend access token API
- 0009775: [documentation] Write a design document on payment sharing/repurchase/replay from the wallet perspective
- 0009028: [wallet-core] Fee computing should accept an optional bool 'amountIsNet' parameter
- 0009050: [wallet-core] Implement checkDeposit with gros/net switch
- 0008866: [wallet-core] consider garbage-collecting expired merchant payment transactions in state `dialog(proposed)`
- 0009080: [wallet (WebExtension)] Missing taxes information for order
- 0008594: [wallet-core] do consistency checks when updating denominations
- 0008538: [wallet-core] consider removing exchange details pointer in the wallet-core DB
- 0007558: [qtart] bundle TLS CA certs and re-enable TLS peer+host verification for libcurl HTTP client implementation
- 0009557: [wallet-core] consider automatically contacting global/regional exchanges from merchant contract terms
- 0007485: [wallet (WebExtension)] check navigator.share and share_target for adoption
- 0008963: [wallet (iOS App)] implement mock banking app for iOS to demonstrate wallet integration
- 0009691: [wallet (WebExtension)] Better network issue UI
- 0007978: [wallet-core] store transaction events when changing transaction details
- 0006977: [wallet-core] make wallet-core more resistant against node supply chain attacks
- 0009014: [libeufin-bank webui] export activity log
- 0006248: [libeufin-nexus] test error handling during subscriber initialization
- 0006259: [libeufin-nexus] error log in database
- 0008690: [wallet-core] reinstate balance from denom-loss transactions when denomination becomes available again
- 0008769: [specification] document possible error codes in wallet-core API docs
- 0007952: [merchant portal webui] implement dd51
- 0008543: [wallet (Android App)] Implement wallet-core integration tests as unit/UI tests.
- 0008651: [merchant-pos-terminal (Android App)] Refund doesn't show in payment history
- 0009093: [wallet (WebExtension)] show spinning wheel in webextension wallet when waiting for background task
- 0007780: [taler-harness] taler-harness lint should check exchange ToS markdown syntax
- 0008318: [wallet-core] Improve the security of P2P send
- 0009688: [wallet (Android App)] P2P push not network improve UI
- 0009689: [wallet (Android App)] P2P pull not network improve UI
- 0009516: [merchant portal webui] Verification OTP
- 0007484: [wallet (WebExtension)] Usability problem with Bitcoin amounts
- 0006721: [libeufin-nexus] consider a way to synchronize the row_id with the TWG
- 0007881: [wallet (WebExtension)] make Wallet Web Extension compatible with Tor private browsing
- 0009562: [specification] Add a batch transfer endpoint to the Wire Gateway API
- 0009121: [auditor-webui] remove *some* "suppress" buttons
- 0009018: [documentation] document (new) NFC communication approach between apps
- 0008842: [wallet (WebExtension)] add support for safari
- 0008901: [wallet (Android App)] Create Buildbot test/deployment pipeline for the Android wallet (and other apps) [estimate: 8h]
- 0008995: [merchant backend] consider adding timing information to PoS confirmation codes
- 0009247: [quality checkpoint] When ToS change in the Exchange, the user must be notified
- 0009662: [deployment and operations] set up ufw for persistent blocking on firefly
- 0009706: [specification] expose instance settings e-mail via contracts to customers
- 0009658: [exchange] expose customer statistics to AML SPA
- 0009627: [exchange] bootstrap fails when submodules were renamed, should improve error message
- 0009457: [merchant backend] scary comment about double payment
- 0008036: [Web site(s)] CSP shared between many *.taler.net-sites, should be made specific to each subdomain
- 0009091: [deployment and operations] [regional currencies] required answers should be marked as such.
- 0008770: [specification] add taler error code in merchant/exchange spec
- 0007707: [wallet-core] wallet should not allow certain operations if offline
- 0007950: [specification] add subject search to the transfer list endpoint
- 0011592: [wallet-core] refactor/simplify wallet-core transaction states (Florian Dold)
- 0007697: [wallet-core] wallet is not GCing denominations (Florian Dold)
- 0010605: [wallet (WebExtension)] Support paid mailbox services (schanzen)
- 0011726: [Cyclos integration] Ensure correctness of Cyclos paytos: handling of receiver strings (Antoine A)
- 0010417: [wallet (iOS App)] Implement redesign of cta-withdraw (MarcS)
- 0010418: [wallet (Android App)] Implement redesign of cta-withdraw (avalos)
- 0009406: [documentation] documentation for various hash codes are lacking details (mikolai)
0 of 276 issue(s) resolved View Issues