> ## Documentation Index
> Fetch the complete documentation index at: https://paragraph.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Reading Paragraph posts from Arweave

> How developers and writers can fetch posts from Arweave.

Paragraph gives writers the option to store their posts on [Arweave](https://www.arweave.org/), enabling permanent and censorship-resistant publishing. This means **anyone can permissionlessly access Paragraph posts via Arweave**, allowing for powerful integrations, self-hosted mirrors, or other dApps built on top of Paragraph data.

***

## Querying Arweave for Posts

To retrieve Paragraph posts from Arweave, follow these two steps:

### 1. Query Arweave via GraphQL for the transaction ID

You can search based on Arweave tags like the `Contributor` wallet or post metadata.

Example GraphQL query to fetch the **latest post** from a specific wallet:

```graphql theme={null}
query GetParagraphPosts($wallet: String!) {
  transactions(
    tags: [
      { name: "AppName", values: ["Paragraph"] },
      { name: "Contributor", values: [$wallet] }
    ],
    sort: HEIGHT_DESC,
    first: 1
  ) {
    edges {
      node {
        id
      }
    }
  }
}
```

### **2. Fetch the post content using Arweave JS SDK**

Once you have the transaction ID, use the [Arweave JS SDK](https://github.com/ArweaveTeam/arweave-js) to retrieve the post data.

Posts stored on Arweave include:

* Static HTML
* TipTap JSON (for rich content structure)
* Metadata (publish date, categories, tags, etc.)

## **Example Integration**

[This open-source repo](https://github.com/PirosB3/Paragraph-Farcaster-xposter) by [@PirosB3](https://github.com/PirosB3) demonstrates how to:

* Fetch Paragraph posts from Arweave
* Cross-post them to [Farcaster](https://www.farcaster.xyz/)

## **When to Use This Approach**

Use Arweave-based reading if:

* You want to build fully decentralized frontends or backup content
* You don’t want to rely on the Paragraph API or SDK
* You want to mirror Paragraph content across multiple protocols or UIs

For most app developers, our [API](/development/api-sdk-overview) and [SDK](/development/sdk/index) are easier to work with — but Arweave remains a valuable, trustless fallback.

## **Resources**

* [Arweave GraphQL](https://arweave.net/graphql)
* [Arweave JS SDK](https://github.com/ArweaveTeam/arweave-js)
* [TipTap Editor JSON Spec](https://github.com/ueberdosis/tiptap)
* [Paragraph → Farcaster example](https://github.com/PirosB3/Paragraph-Farcaster-xposter)
