# Introduction

## Kwil

Kwil is a social media and data management solution built on top of the Arweave permaweb.  By utilizing a myriad of other blockchain technologies, Kwil Social and Kwil DB provide a novel architecture for managing both social graphs, as well as decentralized relational database systems.

## Kwil DB

Kwil DB is a database solution that utilizes blockchain technology to enable the creation, management, and utilization of a decentralized relational database.  By utilizing a variety of synchronization and storage methods, Kwil provides a familiar framework on which developers can build and manage complex relational database systems.  With native support for queries, prepared statements, transactions, WebSocket connections, and multi-extension filesystem support, Kwil DB is a batteries-included solution for any developer who seeks to build on a decentralized database.

### Architecture

A Kwil DB is a network of inter-connected nodes that operate their own self-contained "data moat".  At its core, a data moat is simply a collection of blocks, existing inside Arweave bundles and organized chronologically.  Using these blocks, any node can reconstruct the current state of a data moat, verifying all past queries, transactions, and file-writes.  By constantly scanning a block index for new data writes, as well as listening to peer nodes operating the same data moat, Kwil nodes are able to maintain database state synchronization, with laggards being only a couple seconds behind their peers.

### Guides: Jump right in

Trying to build on a Kwil DB?  Interested in running a node?  Non-technical looking for more information?  You'll find it below!

{% content-ref url="architecture/node" %}
[node](https://v1docs.kwil.com/architecture/node)
{% endcontent-ref %}

{% content-ref url="architecture/block-index" %}
[block-index](https://v1docs.kwil.com/architecture/block-index)
{% endcontent-ref %}

{% content-ref url="broken-reference" %}
[Broken link](https://v1docs.kwil.com/broken-reference)
{% endcontent-ref %}


---

# Agent Instructions: 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:

```
GET https://v1docs.kwil.com/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
