diff --git a/docs/README.md b/docs/README.md
index 42833e8..aeba990 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,11 +1,197 @@
-# Stellar Snap
-adds stellar to metamask, by creating a non-custodial wallet built directly into metamask
+# Stellar Snap Documentation
+adds Stellar to Metamask, by creating a Stellar wallet that lives in Metamask
+
+
+
+
+
+ ## ✨Connect and install:
+ The wallet_requestSnaps method is used to connect to MetaMask and installs the Stellar Wallet if it's not already installed. This also generates the user's wallet.
+ ```javascript
+
+ /* //request connection */
+ async function connect(){
+ const connected = await ethereum.request({
+ method: 'wallet_requestSnaps',
+ params: {
+ [`npm:stellar-snap`]: {}
+ },
+ });
+ }
+
+ ```
+
+
+
+
+
+
+ ## 🦑Calling Stellar Methods:
+ After the snap is connected the wallet_invokeSnap method is used to call Stellar Methods
+```javascript
+
+ //evoke a stellar method
+
+ const request = {
+ method: 'wallet_invokeSnap',
+ params: {snapId:`npm:stellar-snap`,
+ request:{
+ method: `${'Stellar-Method-Name'}`
+ }
+ }
+ }
+ let address = await ethereum.request(request)
+
+
+ // gets the stellar address
+ address = await ethereum.request({
+ method: 'wallet_invokeSnap',
+ params: {snapId:`npm:stellar-snap`, request:{
+ method: `getAddress`,
+ }}
+ })
+
+ ```
+
+
+
+
+
+ ## 📟Calling Stellar Methods With Parameters
+
+ Parameters are nested, parameters inside parameters
+
+ ```javascript
+ //evoke a stellar method with arguments
+ let stellarTransactionXDR = endTransaction.build().toXDR(); //transaction from the stellar-js-sdk
+ const args = {
+ transaction: String(stellarTransactionXDR),
+ network:'testnet'
+ }
+ const request = {
+ method: 'wallet_invokeSnap', //constant across all method calls
+ params:{snapId:'npm:stellar-snap', request:{ //this too
+ method:`${'signTransaction'}`,
+ params:args
+ }
+ }
+ }
+ let SignedTransactionXDR = await ethereum.request(request)
+
+ // example method call with parameters
+ SignedTransactionXDR = await ethereum.request({
+ method: 'wallet_invokeSnap',
+ params: {snapId:`npm:stellar-snap`, request:{
+ method: `signTransaction`,
+ params:{
+ transaction: stellarTransactionXDR
+ testnet:true
+ }
+
+ }}
+ })
+ ```
+
+
+
+
+
+Specifying Network: By default, all methods are treated as mainnet (the main network where actual transactions take place). However, you can specify the testnet (a network used for testing) by passing testnet: true in the parameters.
+
+Current Methods: The README then provides examples of how to use various methods provided by the stellar-snap plugin. These methods include getAddress (returns the account's address), getAccountInfo (returns information related to the account), getBalance (returns the XLM balance of a wallet), transfer (transfers XLM from one account to another), fund (funds the user's wallet on the testnet), and signTransaction (signs an arbitrary transaction).
+
+Soroban: The README also provides an example of how to use the Soroban feature, which allows you to sign a SorobanCall. This involves creating a SorobanClient, getting the account, creating a contract, preparing a transaction, and then signing the transaction.
+
+# Stellar Metamask Methods
+
+
+
+## ⚠️ The Docs past this point are incomplete ⚠️
+you can always ask a question in the
+[discord](https://discord.gg/ETQk4UcYyc)
+
+
+
+
+## connecting
+
+### calling this method will connect to metamask and automatically install the snap if it isn't already installed.
-calling this method will connect to metamask and automatically install the snap if it isn't already installed.
As well as generate the users wallet.
Calling this method or any subsequent methods does not requiring installing anything to a webpage, provided the the user
has metamask (flask) installed.
diff --git a/docs/index.html b/docs/index.html
index 04dd4a7..b998b5c 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -13,10 +13,41 @@
+