diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index ef41d4fa..00000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-*.png binary
-* crlf=input
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 3da57e81..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,45 +0,0 @@
-docs
-**/node_modules/
-**/*.log
-test/repo-tests*
-**/bundle.js
-
-# Logs
-logs
-*.log
-
-coverage
-.nyc_output
-
-# Runtime data
-pids
-*.pid
-*.seed
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# node-waf configuration
-.lock-wscript
-
-build
-
-# Dependency directory
-# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
-node_modules
-
-lib
-dist
-test/test-data/go-ipfs-repo/LOCK
-test/test-data/go-ipfs-repo/LOG
-test/test-data/go-ipfs-repo/LOG.old
-
-# while testing npm5
-package-lock.json
-yarn.lock
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 2061bd32..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-language: node_js
-cache: npm
-stages:
- - check
- - test
- - cov
-
-node_js:
- - '10'
- - '12'
-
-os:
- - linux
- - osx
- - windows
-
-script: npx nyc -s npm run test:node -- --bail
-after_success: npx nyc report --reporter=text-lcov > coverage.lcov && npx codecov
-
-jobs:
- include:
- - stage: check
- script:
- - npx aegir dep-check
- - npm run lint
-
- - stage: test
- name: chrome
- addons:
- chrome: stable
- script:
- - npx aegir test -t browser -t webworker
-
- - stage: test
- name: firefox
- addons:
- firefox: latest
- script:
- - npx aegir test -t browser -t webworker -- --browsers FirefoxHeadless
-
-notifications:
- email: false
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index f661d419..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,147 +0,0 @@
-
-# [0.6.0](https://github.com/libp2p/js-libp2p-keychain/compare/v0.5.4...v0.6.0) (2019-12-18)
-
-
-
-
-## [0.5.4](https://github.com/libp2p/js-libp2p-keychain/compare/v0.5.3...v0.5.4) (2019-12-18)
-
-
-
-
-## [0.5.3](https://github.com/libp2p/js-libp2p-keychain/compare/v0.5.2...v0.5.3) (2019-12-18)
-
-
-
-
-## [0.5.2](https://github.com/libp2p/js-libp2p-keychain/compare/v0.5.1...v0.5.2) (2019-12-02)
-
-
-
-
-## [0.5.1](https://github.com/libp2p/js-libp2p-keychain/compare/v0.5.0...v0.5.1) (2019-09-25)
-
-
-
-
-# [0.5.0](https://github.com/libp2p/js-libp2p-keychain/compare/v0.4.2...v0.5.0) (2019-08-16)
-
-
-* refactor: use async/await instead of callbacks (#37) ([dda315a](https://github.com/libp2p/js-libp2p-keychain/commit/dda315a)), closes [#37](https://github.com/libp2p/js-libp2p-keychain/issues/37)
-
-
-### BREAKING CHANGES
-
-* The api now uses async/await instead of callbacks.
-
-Co-Authored-By: Vasco Santos
-
-
-
-
-## [0.4.2](https://github.com/libp2p/js-libp2p-keychain/compare/v0.4.1...v0.4.2) (2019-06-13)
-
-
-### Bug Fixes
-
-* throw errors with correct stack trace ([#35](https://github.com/libp2p/js-libp2p-keychain/issues/35)) ([7051b9c](https://github.com/libp2p/js-libp2p-keychain/commit/7051b9c))
-
-
-
-
-## [0.4.1](https://github.com/libp2p/js-libp2p-keychain/compare/v0.4.0...v0.4.1) (2019-03-14)
-
-
-
-
-# [0.4.0](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.6...v0.4.0) (2019-02-26)
-
-
-### Features
-
-* adds support for ed25199 and secp256k1 ([#31](https://github.com/libp2p/js-libp2p-keychain/issues/31)) ([9eb11f4](https://github.com/libp2p/js-libp2p-keychain/commit/9eb11f4))
-
-
-
-
-## [0.3.6](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.5...v0.3.6) (2019-01-10)
-
-
-### Bug Fixes
-
-* reduce bundle size ([#28](https://github.com/libp2p/js-libp2p-keychain/issues/28)) ([7eeed87](https://github.com/libp2p/js-libp2p-keychain/commit/7eeed87))
-
-
-
-
-## [0.3.5](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.4...v0.3.5) (2019-01-10)
-
-
-
-
-## [0.3.4](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.3...v0.3.4) (2019-01-04)
-
-
-
-
-## [0.3.3](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.2...v0.3.3) (2018-10-25)
-
-
-
-
-## [0.3.2](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.1...v0.3.2) (2018-09-18)
-
-
-### Bug Fixes
-
-* validate createKey params properly ([#26](https://github.com/libp2p/js-libp2p-keychain/issues/26)) ([8dfaab1](https://github.com/libp2p/js-libp2p-keychain/commit/8dfaab1))
-
-
-
-
-## [0.3.1](https://github.com/libp2p/js-libp2p-keychain/compare/v0.3.0...v0.3.1) (2018-01-29)
-
-
-
-
-# [0.3.0](https://github.com/libp2p/js-libp2p-keychain/compare/v0.2.1...v0.3.0) (2018-01-29)
-
-
-### Bug Fixes
-
-* deepmerge 2.0.1 fails in browser, stay with 1.5.2 ([2ce4444](https://github.com/libp2p/js-libp2p-keychain/commit/2ce4444))
-
-
-
-
-## [0.2.1](https://github.com/libp2p/js-libp2p-keychain/compare/v0.2.0...v0.2.1) (2017-12-28)
-
-
-### Features
-
-* generate unique options for a key chain ([#20](https://github.com/libp2p/js-libp2p-keychain/issues/20)) ([89a451c](https://github.com/libp2p/js-libp2p-keychain/commit/89a451c))
-
-
-
-
-# 0.2.0 (2017-12-20)
-
-
-### Bug Fixes
-
-* error message ([8305d20](https://github.com/libp2p/js-libp2p-keychain/commit/8305d20))
-* lint errors ([06917f7](https://github.com/libp2p/js-libp2p-keychain/commit/06917f7))
-* lint errors ([ff4f656](https://github.com/libp2p/js-libp2p-keychain/commit/ff4f656))
-* linting ([409a999](https://github.com/libp2p/js-libp2p-keychain/commit/409a999))
-* maps an IPFS hash name to its forge equivalent ([f71d3a6](https://github.com/libp2p/js-libp2p-keychain/commit/f71d3a6)), closes [#12](https://github.com/libp2p/js-libp2p-keychain/issues/12)
-* more linting ([7c44c91](https://github.com/libp2p/js-libp2p-keychain/commit/7c44c91))
-* return info on removed key [#10](https://github.com/libp2p/js-libp2p-keychain/issues/10) ([f49e753](https://github.com/libp2p/js-libp2p-keychain/commit/f49e753))
-
-
-### Features
-
-* move bits from https://github.com/richardschneider/ipfs-encryption ([1a96ae8](https://github.com/libp2p/js-libp2p-keychain/commit/1a96ae8))
-* use libp2p-crypto ([#18](https://github.com/libp2p/js-libp2p-keychain/issues/18)) ([c1627a9](https://github.com/libp2p/js-libp2p-keychain/commit/c1627a9))
-
-
-
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index bbfffbf9..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 libp2p
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/keychain/README.md
similarity index 100%
rename from README.md
rename to keychain/README.md
diff --git a/doc/private-key.png b/keychain/doc/private-key.png
similarity index 100%
rename from doc/private-key.png
rename to keychain/doc/private-key.png
diff --git a/doc/private-key.xml b/keychain/doc/private-key.xml
similarity index 100%
rename from doc/private-key.xml
rename to keychain/doc/private-key.xml
diff --git a/package.json b/keychain/package.json
similarity index 100%
rename from package.json
rename to keychain/package.json
diff --git a/src/cms.js b/keychain/src/cms.js
similarity index 100%
rename from src/cms.js
rename to keychain/src/cms.js
diff --git a/src/index.js b/keychain/src/index.js
similarity index 100%
rename from src/index.js
rename to keychain/src/index.js
diff --git a/src/keychain.js b/keychain/src/keychain.js
similarity index 100%
rename from src/keychain.js
rename to keychain/src/keychain.js
diff --git a/src/util.js b/keychain/src/util.js
similarity index 100%
rename from src/util.js
rename to keychain/src/util.js
diff --git a/test/browser.js b/keychain/test/browser.js
similarity index 100%
rename from test/browser.js
rename to keychain/test/browser.js
diff --git a/test/cms-interop.js b/keychain/test/cms-interop.js
similarity index 100%
rename from test/cms-interop.js
rename to keychain/test/cms-interop.js
diff --git a/test/keychain.spec.js b/keychain/test/keychain.spec.js
similarity index 100%
rename from test/keychain.spec.js
rename to keychain/test/keychain.spec.js
diff --git a/test/node.js b/keychain/test/node.js
similarity index 100%
rename from test/node.js
rename to keychain/test/node.js
diff --git a/test/peerid.js b/keychain/test/peerid.js
similarity index 100%
rename from test/peerid.js
rename to keychain/test/peerid.js