# Difference between truffle-contract and web3.eth.Contract

maybe this is a very simple question but I've tried unsuccesfully to understand the difference between truffle-contract and web3.eth.Contract from web3.js 1.0.

As far as I've understood they seems to me two different module used for working with smart contracts' abstraction.

Am I missing something? If they both serve the same purpose which one should I use (functionalities, easy-to-use,ecc)?

Thanks.

• Truffle-contract was based on web3 v0.20 but with promises instead of callbacks. Now web3 v1.0 has "promievents" so functionality is similar but syntaxis is different. Web3 v1.0 is still beta and Truffle is working in separate branches versions compatible with web3 v1.0. – Ismael May 1 '18 at 18:57
• Why is truffle-contract still necessary for web3 1.0.0? At least in my case, it only created confusion. – Paul Berg Nov 23 '18 at 19:13