Your Ethereum Swiss Army Knife

Truffle is the most popular development framework for Ethereum with a mission to make your life a whole lot easier.

$ npm install -g truffle
Requires NodeJS 5.0+. Works on Linux, macOS, or Windows.

Don’t know where to start? Get yourself a Truffle Box!


  1. Built-in smart contract compilation, linking, deployment and binary management

    Truffle takes care of managing your contract artifacts so you don’t have to. Includes support for custom deployments, library linking and complex Ethereum applications.

  2. Automated contract testing for rapid development

    Bring your dapp development to the 21st century. Write automated tests for your contracts in both JavaScript and Solidity, and get your contracts developed quickly.

  3. Scriptable deployment & migrations framework

    Write simple, manageable deployment scripts that acknowledge your application will change over time. Foster your dapp’s evolution and ensure you can maintain your contracts far into the future.

  4. Network management for deploying to both public & private networks

    Don’t manage network artifacts ever again. Let Truffle do it for you, and put your focus on dapp development where it belongs.

  5. Access to hundreds of external packages

    Pull in hundreds of smart contract dependencies from NPM and EthPM to have your code stand on the shoulders of giants.

  6. Interactive console for direct contract communication

    Use Truffle to save time and talk to your contracts via an interactive console, which includes access to all your built contracts and all available Truffle commands.

  7. External script runner that executes scripts within a Truffle environment

    Use Truffle to bootstrap your contracts and run a network-aware script, without hassle.

  8. Built for speed

    Whether you’re compiling contracts or running unit tests, Truffle includes clever optimizations to ensure you only compile what you have to and your tests run as quickly as possible. When used along with Ganache, you can develop your dapps quickly and get real code deployed, fast.


Truffle is written in JavaScript in a completely modular fashion, allowing you to pick and choose the functionality you’d like to use.

For example, you could use Truffle as a library in your own tool, using only the modules that you need. This lets you to take advantage of powerful features like Truffle migrations in your own command line tools.

Check out the source code on GitHub!


We offer various levels of support for your company and team.


We need your help! There are many ways you can help contribute to the Truffle project. Here are some ways that you can contribute:

  1. Open issues in our GitHub project
  2. Submit Pull Requests to the GitHub project - but please open an issue to discuss the feature first!
  3. Test out the Beta versions of Truffle to help us nail down issues and stomp bugs.
  4. Participate in our Gitter chat room helping out other users.



Sign up today to be a member of the Truffle Beta Program. You’ll be added to our low volume mailing list which we’ll use to communicate future changes, development ideas and allow you to shape Truffle’s development.