diff --git a/README.md b/README.md
index 173ec0ce3f2d5141b2fad278e94f828c9c927a17..aea1bd8efa0ca826fbb0ac3b5606e421e3eec817 100644
--- a/README.md
+++ b/README.md
@@ -8,4 +8,47 @@ This repository contains all golang dependencies currently used in Bitmask Andro
 
 Run the follwing command to build Bitmask Core for all Android build flavors (runs currently only on Linux 64-bit distros):
 
-`./build_core.sh`
\ No newline at end of file
+`./build_core.sh`
+
+## Adding new go libraries
+
+1. In order to add new library we currently add them as git submodules. 
+```
+git submodule add git://<repository_url.git> <new_lib_directory>
+```
+
+2. Most of the time the new library has its own `go.mod` and `go.sum` file. You need to copy and paste all `required` dependencies from the new libraries `go.mod` to the `go.mod` in the bitmaskcore directory. Similarly, you have also to take care about `replace` entries.
+
+3. delete `go.mod` and `go.sum` from the new library 
+```
+# you should be in bitmaskcore
+cd <new_lib_directory>
+rm go.mod go.sum
+```
+4. create a patch from the diff 
+```
+# you should be in bitmaskcore/<new_lib_directory>
+git diff > ../<new_lib>.patch
+git stash
+cd ..
+```
+4. Make sure the `bitmaskcore/golang` directory is empty. 
+```
+# you should be in bitmaskcore
+rm -rf ./golang/* 
+```
+5. And let go add any missing modules.
+```
+# you should be in bitmaskcore
+go mod tidy
+```
+6. Update [build_core.sh](build_core.sh) and add some lines of code below the exting patches section
+
+```
+# -------- preparing <new_lib> ---------------
+showtitle "Applying patch to <new_lib>"
+patch --directory=<new_lib_directory> --strip=1 < <new_lib>.patch || quit
+```
+
+7. `git add` your changes and commit them
+8. run `./build_core.sh` and make sure it succeeds