> For the complete documentation index, see [llms.txt](https://nomos-docs.gitbook.io/nomos-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nomos-docs.gitbook.io/nomos-1/readme/nomos-providers/adding-a-nomos-app.md).

# Adding a Nomos App

First you must reach us, that way we can add your application to our APP dashboard, where we place every third party app that wants to extend their functionality to multisig wallets.

### Modify your application

Just as normal EOA wallets, you need a provider that allows you to interact with the blockchain. Each wallet (keplr, cosmostation, leap, etc) has its own signer that will be passed to a CosmJs provider. This provider is normally used across your application to interact with smart contracts and native assets.

We created our own provider that implements the same functions as CosmJs and Archway SDK. This provider instead of sending functions to the blockchain, it sends them to our application (if your app is being rendered through an Iframe).

### Nomos providers as wallet providers

You can treat our nomos providers just as any other wallet provider, your app will need to check if it's within an Iframe, and then it should use the nomos provider instead of any other provider you would normally use.

This provider will create a multisig proposal for any action that your application makes, so for example if the user swaps tokens on a DEX. The Nomos provider will convert this Swap into a Nomos proposal on the multisig that is being used. Then the users part of that multisig can approve that action and the swap will be executed by the shared wallet.

### Example

You can initialize any of our Nomos providers the same as you would with the CosmWasm providers. If your application uses any of these two providers or another tool that wraps around them, you can integrate easily in our interface with the following:

```typescript
const isIframe = window !== window.parent; //check if its an iframe
const client = isIframe
  ? await SigningNomosClient.connectWithSigner(network.rpc, offlineSigner) //use our provider
  : await SigningCosmWasmClient.connectWithSigner(network.rpc, offlineSigner); //use cosmos provider
```

We first check that we are on an iframe, that will mean that our application is inside the Nomos interface. Then we start the provider the same way we do it with the cosmwasm provider. Then any transaction made with the provider will be the same as with the conventional provider. Instead of sending transactions directly to the blockchain, the Nomos provider sends it to the parent window and our application transforms the message to be compatible with the multisig proposals.

```typescript
//Send tokens example with our provider
await client.sendTokens(
  userAddress,
  receiverAddr,
  [{amount: amount.toString(), denom: "your_denom"}],
  "auto"
);
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://nomos-docs.gitbook.io/nomos-1/readme/nomos-providers/adding-a-nomos-app.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
