Truffle Flattener concats solidity files developed under Truffle with all of their dependencies
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore command line - adding `--output` mode 👍 Jul 29, 2018
LICENSE Initial commit Oct 25, 2017 Add aliased imports limitation to readme. Nov 22, 2018
index.js Normilize file path separators (windows) Nov 8, 2018
package-lock.json Bump version Nov 22, 2018


Truffle Flattener concats solidity files developed under Truffle with all of their dependencies.

This tool helps you to verify contracts developed with Truffle on Etherscan, or debugging them on Remix, by merging your files and their dependencies in the right order.

Check out Buidler, our alternative to Truffle. It's got flattening built-in, it's faster, and much more flexible.


npm install truffle-flattener -g


Just intall it with npm in your truffle project and run truffle-flattener <solidity-files>.

Why not Solidity Flattener?

This project is a Truffle specific reimplementation of Solidity Flattener. By being closely coupled to Truffle it can take advantage of its dependencies resolution logic making --solc-paths a thing of the past. It also supports flattening more than one file at once, concatenating everything in the right order, whithout duplicating any file.


If you deploy your contracts with truffle's migrations the output of truffle-flattener may not match while verifying it in Etherscan. You can use Solidity Flattener in that case, or deploy your contracts from Remix.

Aliased imports (eg: import {symbol1 as alias, symbol2} from "filename";) are not supported by truffle-flattener.