diff --git a/README.MD b/README.MD
new file mode 100644
index 0000000..4ca412b
--- /dev/null
+++ b/README.MD
@@ -0,0 +1,109 @@
+# Open Autonomous Connection Protocol
+
+This is the Protocol for our Open Autonomous Connection project.
+You can easily implement this Protocol via Maven.
+Feel free to join our Discord.
+
+
+# Bugs/Problems
+# In progress
+# TODO
+
+# Maven
+### pom.xml
+```
+
+ me.openautonomousconnection
+ protocol
+ 1.0.0
+ compile
+
+```
+
+### Repository:
+```
+
+
+ github
+ https://maven.pkg.github.com/open-autonomous-connection/protocol
+
+ true
+
+
+
+```
+
+# Examples
+#### Note: These examples are very basic
+### Server
+
+```java
+import me.finn.unlegitlibrary.network.system.server.ConnectionHandler;
+import me.openautonomousconnection.protocol.ProtocolBridge;
+import me.openautonomousconnection.protocol.ProtocolSettings;
+import me.openautonomousconnection.protocol.ProtocolVersion;
+import me.openautonomousconnection.protocol.side.ProtocolServer;
+
+public class Server extends ProtocolServer {
+
+ public Server() throws IOException, InterruptedException {
+ super(10);
+ }
+
+ public static void main(String[] args) {
+ try {
+ ProtocolBridge protocolBridge = new ProtocolBridge(ProtocolVersion.PV_1_0_0, new ProtocolSettings(), new Server());
+ protocolBridge.getProtocolServer().setProtocolBridge(protocolBridge);
+ protocolBridge.getProtocolServer().startServer();
+ } catch (IOException | InterruptedException | InvocationTargetException | InstantiationException |
+ IllegalAccessException | NoSuchMethodException exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public List getDomains() throws SQLException {
+ return List.of(); // Your method here to get all registered domains
+ }
+
+ @Override
+ public void handleMessage(ConnectionHandler connectionHandler, String message) {
+ System.out.println("Received message: " + message + " from client: " + connectionHandler.getClientID());
+ }
+}
+```
+### Client
+
+```java
+import me.openautonomousconnection.protocol.ProtocolBridge;
+import me.openautonomousconnection.protocol.ProtocolSettings;
+import me.openautonomousconnection.protocol.ProtocolVersion;
+import me.openautonomousconnection.protocol.domain.Domain;
+import me.openautonomousconnection.protocol.side.ProtocolClient;
+import me.openautonomousconnection.protocol.utils.SiteType;
+
+public class Client extends ProtocolClient {
+
+ public static void main(String[] args) {
+ try {
+ ProtocolBridge protocolBridge = new ProtocolBridge(ProtocolVersion.PV_1_0_0, new ProtocolSettings(), new Client());
+ protocolBridge.getProtocolClient().setProtocolBridge(protocolBridge);
+ protocolBridge.getProtocolServer().startClient();
+ } catch (IOException | InterruptedException | InvocationTargetException | InstantiationException |
+ IllegalAccessException | NoSuchMethodException exception) {
+ exception.printStackTrace();
+ }
+ }
+
+ @Override
+ public void handleHTMLContent(SiteType siteType, Domain domain, String htmlContent) {
+ System.out.println("Website html content received. This site is " + siteType.name);
+ System.out.println(htmlContent); // Render content in a webview for example
+ }
+
+ @Override
+ public void handleMessage(String message) {
+ System.out.println("Received message: " + message);
+ }
+}
+```
\ No newline at end of file