You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
3.3 KiB
62 lines
3.3 KiB
# <img src="logo.png" alt="OpenZeppelin" width="400px">
|
|
|
|
[![NPM Package](https://img.shields.io/npm/v/openzeppelin-solidity.svg?style=flat-square)](https://www.npmjs.org/package/openzeppelin-solidity)
|
|
[![Build Status](https://travis-ci.com/OpenZeppelin/openzeppelin-solidity.svg?branch=master)](https://travis-ci.com/OpenZeppelin/openzeppelin-solidity)
|
|
[![Coverage Status](https://coveralls.io/repos/github/OpenZeppelin/openzeppelin-solidity/badge.svg?branch=master)](https://coveralls.io/github/OpenZeppelin/openzeppelin-solidity?branch=master)
|
|
|
|
**OpenZeppelin is a library for secure smart contract development.** It provides implementations of standards like ERC20 and ERC721 which you can deploy as-is or extend to suit your needs, as well as Solidity components to build custom contracts and more complex decentralized systems.
|
|
|
|
## Install
|
|
|
|
```
|
|
npm install openzeppelin-solidity
|
|
```
|
|
|
|
OpenZeppelin features a stable API, which means your contracts won't break unexpectedly when upgrading to a newer minor version. You can read ṫhe details in our [API Stability](https://forum.zeppelin.solutions/t/api-stability/138) document.
|
|
|
|
## Usage
|
|
|
|
To write your custom contracts, import ours and extend them through inheritance.
|
|
|
|
```solidity
|
|
pragma solidity ^0.5.0;
|
|
|
|
import 'openzeppelin-solidity/contracts/token/ERC721/ERC721Full.sol';
|
|
import 'openzeppelin-solidity/contracts/token/ERC721/ERC721Mintable.sol';
|
|
|
|
contract MyNFT is ERC721Full, ERC721Mintable {
|
|
constructor() ERC721Full("MyNFT", "MNFT") public {
|
|
}
|
|
}
|
|
```
|
|
|
|
> You need an ethereum development framework for the above import statements to work! Check out these guides for [Truffle] or [Embark].
|
|
|
|
On our site you will find a few [guides] to learn about the different parts of OpenZeppelin, as well as [documentation for the API][API docs]. Keep in mind that the API docs are work in progress, and don’t hesitate to ask questions in [our forum][forum].
|
|
|
|
## Security
|
|
|
|
OpenZeppelin the project is maintained by [Zeppelin] the company, and developed following our high standards for code quality and security. OpenZeppelin is meant to provide tested and community-audited code, but please use common sense when doing anything that deals with real money! We take no responsibility for your implementation decisions and any security problems you might experience.
|
|
|
|
The core development principles and strategies that OpenZeppelin is based on include: security in depth, simple and modular code, clarity-driven naming conventions, comprehensive unit testing, pre-and-post-condition sanity checks, code consistency, and regular audits.
|
|
|
|
The latest audit was done on October 2018 on version 2.0.0.
|
|
|
|
Please report any security issues you find to security@openzeppelin.org.
|
|
|
|
## Contribute
|
|
|
|
OpenZeppelin exists thanks to its contributors. There are many ways you can participate and help build high quality software. Check out the [contribution guide]!
|
|
|
|
## License
|
|
|
|
OpenZeppelin is released under the [MIT License](LICENSE).
|
|
|
|
|
|
[API docs]: https://openzeppelin.org/api/docs/token_ERC721_ERC721BasicToken.html
|
|
[guides]: https://openzeppelin.org/api/docs/get-started.html
|
|
[forum]: https://forum.zeppelin.solutions
|
|
[Zeppelin]: https://zeppelin.solutions
|
|
[contribution guide]: CONTRIBUTING.md
|
|
[Truffle]: https://truffleframework.com/docs/truffle/quickstart
|
|
[Embark]: https://embark.status.im/docs/quick_start.html
|
|
|