How to develop an Ethereum plugin
This guide shows you how to start developing an Ethereum plugin for your dApp’s smart contract interactions.
The ERC-7730 process replaces plugins for simple cases by providing a standardized way to display transaction information. However, more specific dApps with complex smart contract interactions may still require custom plugin development to provide clear signing capabilities for their users.
Plugin development requires prior approval from Ledger. If your project requires a plugin, you are already in contact with Ledger and have been directed to develop one. Plugin development is only undertaken when Ledger has determined that your use case cannot be adequately handled by the standard ERC-7730 process.
Prerequisites:
- You have been approved by Ledger to develop a plugin.
- You are familiar with C development and Ledger device app architecture. See What is a device app? for an overview.
What’s included in the Ethereum Plugin SDK
The Ethereum Plugin SDK documentation provides comprehensive guidance for plugin development, including:
Core components
- Plugin architecture — how plugins work alongside the Ethereum application.
- Handler functions — the key functions you implement:
handle_init_contract,handle_provide_parameter,handle_finalize, and others. - Utility functions — pre-built helpers for common operations.
- Transaction data parsing — tools for extracting and formatting smart contract data.
Development tools
- Ethereum Plugin SDK — the main framework that handles integration with the Ethereum app.
- Plugin boilerplate — a template repository to get started quickly.
- Test framework — functional tests and fuzzing capabilities.
- CI workflows — automated testing and quality assurance.
File structure
A complete plugin includes:
- Source code (in C)
- Plugin specification document
- Icons and glyphs for device display
- Makefile and build configuration
- Test suite and fuzzing setup
Getting started
To develop your Ethereum plugin:
- Read the SDK documentation — use the comprehensive guide at ethereum-plugin-sdk.ledger.com.
- Fork the boilerplate — start with the official Plugin Boilerplate template linked from the SDK docs.
- Implement your handlers — focus on the smart contract parsing logic specific to your dApp, starting with
handle_init_contractandhandle_provide_parameter. - Write functional tests — cover all transaction paths your plugin handles. Tests are mandatory for submission.
- Submit for review — when your plugin and tests are ready, follow the submission process.
Troubleshooting
CI: the Guidelines_enforcer workflow fails.
The enforcer checks against Ledger’s published app guidelines. Review the workflow logs for the specific rule that failed, then refer to the security requirements and development requirements pages to address each issue.
I am not sure whether my use case needs a plugin or can use ERC-7730. Start with the ERC-7730 process. If your smart contract interactions are too complex for that standard, contact Ledger to discuss plugin development.
Next steps
Your plugin is ready when it passes all functional tests and the CI workflows. Submit it alongside your deliverables using the submission form.
- Ethereum Plugin SDK documentation — full technical reference for plugin development.
- Submission process — how to submit your plugin for review.
- Development requirements — mandatory CI workflows and tooling requirements.