> For the complete documentation index, see [llms.txt](https://pi0neerpat.gitbook.io/one-click-dapp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pi0neerpat.gitbook.io/one-click-dapp/get-started/getting-started.md).

# 👨🏻‍🏫  Intro

How One Click Dapp  works

## Introduction

All blockchain applications have two main components:

* **On-chain code** e.g. a smart contract which handles the logic
* **Interface** e.g. a website like <https://app.uniswap.org>

A **Dapp** is the combination of these two components.

The on-chain code portion of a Dapp "lives" on the blockchain network, so it cannot be accessed directly using a web browser.

{% hint style="info" %}
One Click Dapp serves as the interface to any blockchain applications.
{% endhint %}

Instead, we must create a connection with a server or "node" connected to the blockchain network. Then we can use a library like [ethers.js](https://github.com/ethers-io/ethers.js) to communicate with the node and ask for details about our blockchain app. Finally, we can display these details in a standard web application.

Sounds like a lot of work right? Let's do it all in one click.

## Creating Interfaces

All blockchain applications can be accessed using only a few details:

* **Network** - The blockchain network where the on-chain code is deployed eg. "Ethereum mainnet"
* **Contract Address** - The specific location of the on-chain code on the blockchain network eg. "0xabc123...."
* **Application Binary Interface (ABI)** - A list of functions and their arguments for the on-chain code.

You can create OCD interfaces for any on-chain code, not just your own applications.

{% hint style="info" %}
Every blockchain application can have an unlimited number of interfaces. That's the power of blockchain - **access cannot be blocked**.
{% endhint %}

## Sharing Links

OCD stores all the information about your blockchain application and creates a new web URL, for example:

```
oneclickdapp.com/heroic-lizard
```

The *heroic-lizard* part of the URL is a randomely generated identifier.
