diff --git a/examples/dns/README.md b/examples/dns/README.md
new file mode 100644
index 00000000000..1f7ddafe159
--- /dev/null
+++ b/examples/dns/README.md
@@ -0,0 +1,28 @@
+# DNS Smart contract
+
+The DNS smart contract is our showcase for decentralizing the Domain naming system.
+
+
+
+> This contract compiles with ink! 4.0-beta version
+
+Domain name service contract inspired by
+ [this blog post on medium](https://medium.com/@chainx_org/secure-and-decentralized-polkadot-domain-name-system-e06c35c2a48d).
+
+### Description
+The registration of a new Domain works by the function `register` defined in the contract which takes 2 parameters: name and hash. Client sends a request to the DNS system such as "polka.dot" which returns the resolver address as shown below. The "polka.dot" is resolved by mapping the it to a `hash value` from the function named `Get_address` in the `lib.rs` file.
+
+
+
+
+![Image](images/dns_diagram.png)
+
+## Functionalities provided:
+
+- Registration of a new Domain Name
+- Transfer the (already exsiting) owner to new Address
+- Change the Domain Name
+
+
+
+
\ No newline at end of file
diff --git a/examples/dns/images/dns_diagram.png b/examples/dns/images/dns_diagram.png
new file mode 100644
index 00000000000..a9f569a8a39
Binary files /dev/null and b/examples/dns/images/dns_diagram.png differ