diff --git a/.github/contributing.md b/.github/contributing.md
new file mode 100644
index 0000000..2d2df1d
--- /dev/null
+++ b/.github/contributing.md
@@ -0,0 +1,122 @@
+# Contributing to thirdweb React SDK
+
+Thanks for considering contributing to thirdweb React SDK.
+
+Below, you'll find a guide on how to set up the repository locally so you can test your changes and submit them to the repository for review by our engineering team.
+
+To develop locally:
+
+1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account.
+
+2. [Clone](https://help.github.com/articles/cloning-a-repository/) your fork to your local device.
+
+3. Create a new branch:
+ ```
+ git checkout -b MY_BRANCH_NAME
+ ```
+
+### Getting Started
+
+You're ready to start making changes to the code! Where do you start?
+
+We suggest taking a look at the [index.ts](/packages/thirdweb-react/src/index.ts) file, to begin with. This gives you a very broad overview of everything that is exported from our React SDK.
+
+From this file, you can view where each of the hooks and components is defined, and add/modify the code you have in mind accordingly.
+
+## Testing Your Changes Locally
+
+Below is a guide on how to test the changes you made in the SDK locally.
+
+
+
+### Install Dependencies & Build
+
+You'll first need to install the dependencies for your local development environment.
+
+Change directory to the src:
+
+```bash
+cd /packages/thirdweb-react/
+```
+
+Install dependencies:
+
+```bash
+yarn install
+```
+
+Now build the project:
+
+```bash
+yarn build
+```
+
+
+
+### Use Yalc to Test Your Changes
+
+We use [yalc](https://www.npmjs.com/package/yalc) to test our changes locally on a test project.
+
+Yalc allows you to export a version of the SDK with your changes locally, and install this version of the SDK in a test project, where you can test your changes.
+
+1. Install yalc globally:
+
+ ```
+ yarn global add yalc
+ ```
+
+2. Build Your changes each time you make a change you want to test:
+
+ ```
+ yarn build
+ ```
+
+3. Publish and push the SDK to yalc:
+
+ ```
+ yalc push
+ ```
+
+4. In a **different** project (where you will be testing your changes), install the SDK version you just built from yalc. If you dont have another project to test with, create one using `npx thirdweb create`.
+ ```
+ yalc add @thirdweb-dev/react
+ ```
+
+You'll now notice in the `package.json` file of your test project, the version of the `@thirdweb-dev/react` dependency is now the version you just built; the value should be `file:.yalc/@thirdweb-dev/react`. You'll also have a `.yalc` folder containing the exported SDK.
+
+From this test project, you can test to see if your changes are working as expected.
+
+
+
+### Development Loop
+
+You will likely want to change stuff, test it, and then repeat this process until you're happy with your changes.
+
+After following the process above to initialize this connection between the local SDK and your test project, you can simply run both:
+
+- `yarn build`
+- `yalc push`
+
+from the React SDK repo, which will push the changes you've made to any test projects that are using your yalc version of the SDK.
+
+> Note: If you're using Next.js in the test project, you might need to delete the `.next` folder from the root each time you run `dev`.
+
+
+
+## Publish Your Changes
+
+Alright! You're happy with your changes and ready to publish them to the SDK.
+
+1. Commit your changes:
+
+ ```
+ git commit -am "My commit message"
+ ```
+
+2. Push your changes to the SDK:
+
+ ```
+ git push origin MY_BRANCH_NAME
+ ```
+
+3. Create a [pull request](https://www.atlassian.com/git/tutorials/making-a-pull-request) to the `main` branch of the official (not your fork) SDK repo.