The security model for Ledger Nano devices is “What you see is what you sign”. The end-user must verify and approve transactions by carefully verifying all the information displayed on the Nano screen ensuring it is correct, before signing. This particularly applies to the destination address and amount of transactions
The purpose of the Nano (BOLOS) application is specifically to handle the parsing and displaying of transaction details to the end-user.
We refer to blind signing when the user cannot verify transaction details because they are not displayed on the Nano screen. This is often the case when users interact with smart contracts. Indeed, as each smart contract interaction is different, there is no easy way for the BOLOS application to easily parse the message to be signed.
To solve this problem, Ledger has designed plugins. Plugins are some very specific applications that handle dedicated smart contract methods, therefore making unverifiable contract data readable on the Nano screen.
Ledger designed and implemented Paraswap, the first Ethereum plugin.
You will find documentation to make your plugin here.
The second mandatory requirement to obtain official support by Ledger for your DApp is using a plugin to verify transaction details on the Nano device.