Skip to content
Ethereum Package Manager
Branch: master
Clone or download
njgheorghita Merge pull request #136 from njgheorghita/update
Update "URI" format in schema
Latest commit c747d54 May 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Add GFM export script for EIP Jun 2, 2018
examples Fix ipfs references Dec 2, 2018
spec Update unspecified URI format to uri in schema May 13, 2019
.travis.yml Add GFM export script for EIP Jun 2, 2018 Expand README May 28, 2018
deploy-key.enc Add encrypted Travis deploy key May 10, 2018
package.json Update NPM package for Typescript use Dec 2, 2018
requirements.txt update dependencies with security warnings May 13, 2019
yarn.lock Update NPM package for Typescript use Dec 2, 2018

EthPM Package Specification


Join the chat at

This repository comprises the formal specification and documentation source for the EthPM package manifest data format.

This data format is designed to be produced/consumed by Ethereum development tools. As such, this repository is intended for tool developers wishing to integrate with EthPM.

Package manifests are JSON-encoded, tightly-packed, with objects’ keys sorted in lexicographic order. Package manifests may live on disk, but are intended to be produced programmatically and uploaded directly to a content-addressable storage network (e.g. IPFS). A package manifest describes a single package, including package name, version, dependencies, and references to distributed source files.

Repository Contents

Examples / Use Cases

Package: owned (prettified)

  "manifest_version": "2",
  "version": "1.0.0",
  "package_name": "owned",
  "meta": {
    "license": "MIT",
    "authors": [
      "Piper Merriam <>"
    "description": "Reusable contracts which implement a privileged 'owner' model for authorization.",
    "keywords": [
    "links": {
      "documentation": "ipfs://QmUYcVzTfSwJoigggMxeo2g5STWAgJdisQsqcXHws7b1FW"
  "sources": {
    "./contracts/Owned.sol": "ipfs://Qme4otpS88NV8yQi8TfTP89EsQC5bko3F5N1yhRoi6cwGV"

Please see Use Cases for documented examples of different kinds of packages with varying levels of complexity. Source for use case examples can be found in the examples/ directory of this repository.


The EthPM package manifest format is formally specified as a JSON-Schema.

Please see Package Specification for a natural-language description of this schema, or see package.spec.json for the machine-readable version.


Building Sphinx docs locally

Requirements: Python 3, pip, make

Fork and clone this repo to get started. Then, in the cloned repo's directory:

  1. pip install -r requirements.txt
  2. cd docs
  3. make html

Docs are written in reStructuredText and built using the Sphinx documentation generator.

You can’t perform that action at this time.