diff --git a/.github/workflows/starknet-contracts.yml b/.github/workflows/starknet-contracts.yml
new file mode 100644
index 00000000..209ed89d
--- /dev/null
+++ b/.github/workflows/starknet-contracts.yml
@@ -0,0 +1,26 @@
+name: Starknet Contracts
+
+on: [push, pull_request]
+
+permissions: read-all
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: software-mansion/setup-scarb@v1
+ - name: Check cairo format
+ run: scarb fmt --check
+ working-directory: onchain
+ - name: Build cairo programs
+ run: scarb build
+ working-directory: onchain
+ tests:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: software-mansion/setup-scarb@v1
+ - name: Run cairo tests
+ run: scarb test
+ working-directory: onchain
diff --git a/.gitignore b/.gitignore
index 6985cf1b..f8951466 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,5 @@ Cargo.lock
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
+
+**/.DS_Store
\ No newline at end of file
diff --git a/README.md b/README.md
index 6e17503e..fbd986c8 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,36 @@
-# joyboy
-Decentralized social
+
+
+
+ ***Starknet x Nostr***
+
+ [![Starknet Test Workflow Status](https://github.com/keep-starknet-strange/joyboy/actions/workflows/starknet-contracts.yml/badge.svg)](https://github.com/keep-starknet-strange/joyboy/actions/workflows/starknet-contracts.yml)
+
+ [![Exploration_Team](https://img.shields.io/badge/Exploration_Team-29296E.svg?&style=for-the-badge&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODEgMTgxIj48ZGVmcz48c3R5bGU+LmJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iYiIgZD0iTTE3Ni43Niw4OC4xOGwtMzYtMzcuNDNjLTEuMzMtMS40OC0zLjQxLTIuMDQtNS4zMS0xLjQybC0xMC42MiwyLjk4LTEyLjk1LDMuNjNoLjc4YzUuMTQtNC41Nyw5LjktOS41NSwxNC4yNS0xNC44OSwxLjY4LTEuNjgsMS44MS0yLjcyLDAtNC4yN0w5Mi40NSwuNzZxLTEuOTQtMS4wNC00LjAxLC4xM2MtMTIuMDQsMTIuNDMtMjMuODMsMjQuNzQtMzYsMzcuNjktMS4yLDEuNDUtMS41LDMuNDQtLjc4LDUuMThsNC4yNywxNi41OGMwLDIuNzIsMS40Miw1LjU3LDIuMDcsOC4yOS00LjczLTUuNjEtOS43NC0xMC45Ny0xNS4wMi0xNi4wNi0xLjY4LTEuODEtMi41OS0xLjgxLTQuNCwwTDQuMzksODguMDVjLTEuNjgsMi4zMy0xLjgxLDIuMzMsMCw0LjUzbDM1Ljg3LDM3LjNjMS4zNiwxLjUzLDMuNSwyLjEsNS40NCwxLjQybDExLjQtMy4xMSwxMi45NS0zLjYzdi45MWMtNS4yOSw0LjE3LTEwLjIyLDguNzYtMTQuNzYsMTMuNzNxLTMuNjMsMi45OC0uNzgsNS4zMWwzMy40MSwzNC44NGMyLjIsMi4yLDIuOTgsMi4yLDUuMTgsMGwzNS40OC0zNy4xN2MxLjU5LTEuMzgsMi4xNi0zLjYsMS40Mi01LjU3LTEuNjgtNi4wOS0zLjI0LTEyLjMtNC43OS0xOC4zOS0uNzQtMi4yNy0xLjIyLTQuNjItMS40Mi02Ljk5LDQuMyw1LjkzLDkuMDcsMTEuNTIsMTQuMjUsMTYuNzEsMS42OCwxLjY4LDIuNzIsMS42OCw0LjQsMGwzNC4zMi0zNS43NHExLjU1LTEuODEsMC00LjAxWm0tNzIuMjYsMTUuMTVjLTMuMTEtLjc4LTYuMDktMS41NS05LjE5LTIuNTktMS43OC0uMzQtMy42MSwuMy00Ljc5LDEuNjhsLTEyLjk1LDEzLjg2Yy0uNzYsLjg1LTEuNDUsMS43Ni0yLjA3LDIuNzJoLS42NWMxLjMtNS4zMSwyLjcyLTEwLjYyLDQuMDEtMTUuOGwxLjY4LTYuNzNjLjg0LTIuMTgsLjE1LTQuNjUtMS42OC02LjA5bC0xMi45NS0xNC4xMmMtLjY0LS40NS0xLjE0LTEuMDgtMS40Mi0xLjgxbDE5LjA0LDUuMTgsMi41OSwuNzhjMi4wNCwuNzYsNC4zMywuMTQsNS43LTEuNTVsMTIuOTUtMTQuMzhzLjc4LTEuMDQsMS42OC0xLjE3Yy0xLjgxLDYuNi0yLjk4LDE0LjEyLTUuNDQsMjAuNDYtMS4wOCwyLjk2LS4wOCw2LjI4LDIuNDYsOC4xNiw0LjI3LDQuMTQsOC4yOSw4LjU1LDEyLjk1LDEyLjk1LDAsMCwxLjMsLjkxLDEuNDIsMi4wN2wtMTMuMzQtMy42M1oiLz48L3N2Zz4=)](https://github.com/keep-starknet-strange)
+
+
+
+## Overview
+
+Decentralized social built with Nostr and powered by Starknet account abstraction.
+
+## Build
+
+To build the project, run:
+
+```bash
+scarb build
+```
+
+## Test
+
+To test the project, run:
+
+```bash
+snforge test
+```
+
+## Resources
+
+- [Starknet](https://starknet.io/)
+- [Nostr](https://www.nostr.com/)
+- [Nostr Implementation Possibilities](https://github.com/nostr-protocol/nips)
diff --git a/onchain/.gitignore b/onchain/.gitignore
new file mode 100644
index 00000000..eb5a316c
--- /dev/null
+++ b/onchain/.gitignore
@@ -0,0 +1 @@
+target
diff --git a/onchain/Scarb.lock b/onchain/Scarb.lock
new file mode 100644
index 00000000..9edcf8be
--- /dev/null
+++ b/onchain/Scarb.lock
@@ -0,0 +1,6 @@
+# Code generated by scarb DO NOT EDIT.
+version = 1
+
+[[package]]
+name = "joyboy"
+version = "0.1.0"
diff --git a/onchain/Scarb.toml b/onchain/Scarb.toml
new file mode 100644
index 00000000..2a838a36
--- /dev/null
+++ b/onchain/Scarb.toml
@@ -0,0 +1,8 @@
+[package]
+name = "joyboy"
+version = "0.1.0"
+edition = "2023_11"
+
+# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html
+
+[dependencies]
diff --git a/onchain/src/lib.cairo b/onchain/src/lib.cairo
new file mode 100644
index 00000000..d183ea18
--- /dev/null
+++ b/onchain/src/lib.cairo
@@ -0,0 +1,17 @@
+fn main() -> u32 {
+ 0
+}
+
+fn say_hi() -> u32 {
+ 0
+}
+
+#[cfg(test)]
+mod tests {
+ use super::say_hi;
+
+ #[test]
+ fn it_works() {
+ assert(say_hi() == 0, 'it works!');
+ }
+}
diff --git a/resources/logo/joyboy.png b/resources/logo/joyboy.png
new file mode 100644
index 00000000..557690ee
Binary files /dev/null and b/resources/logo/joyboy.png differ