Advanced interactions

This chapter presents additional templates your app can use when limitations prevents you to follow the standard templates presented in previous chapters.

Streamed transactions

For some operations, your app may not be able to fully load the data in memory before presenting it to your users. When streaming transaction data to your app device page by page, the navigation has to change

  • if the total number of pages isn’t known, you should hide it
  • if the user cannot go back to previous pages, the “back” button should be hidden.

Here’s what an EIP-712 streamed message looks like in the Ethereum app, for Ledger Stax and Ledger Flex:

Streamed transactions
The footer changes: no “back” arrow, and no page numbers.
đź’»

API
nbgl_useCaseReviewStreamingStart()
nbgl_useCaseReviewStreamingContinue()
nbgl_useCaseReviewStreamingFinish()
These high-level API functions allow your app to stream pages of information, as presented above. View API docs..

⚠️

Try avoiding transaction streaming in your app whenever possible, since blocking your users in a forward-only progression is not recommended UX.

Progressive disclosure of long fields

When signing operations with uncontrolled structure and contents, you can encounter data that is too long to fit in one field, even on one page.

In these cases, you can hide the contents of a field behind a “More” interaction to use progressive disclosure. This is useful to let your users go faster to signing, while still providing a preview of the field contents.

When the user taps on the “More” button, a modal containing the entirety of the field opens. If the field spans over several pages, navigation arrows appear:

Progressive disclosure of long fields

đź’»

API
There’s no specific graphical API to display this “More” button. It is handled automatically by the nbgl_useCaseReview() and nbgl_useCaseReviewStreamingContinue() functions.

⚠️

Use progressive disclosure with care and only for fields that don’t affect your user’s privacy, security, or funds. This should be reserved for non-critical data only.

Key takeways

These guidelines can evolve as new apps and operations surface new interface needs.

Ledger
Copyright © Ledger SAS. All rights reserved. Ledger, Ledger Nano S, Ledger Vault, Ledger OS are registered trademarks of Ledger SAS