# Web3 SDK

## Web3 SDK

it's a open-source React UI Kit that allows anyone to build web3 apps without prior web3 knowledge.

## Motivation

The premise is that on a top level, developer doesn't need to know about gas, transactions, smart-contract – we can have good defaults that work for any wallet and that provide good UI/UX and feedback.

Developer's job is building UI in React, web3-sdk handles all the rest. Developer only decides which data to take from inputs, which transactions to create on each button click – and every blockchain detail is handled by us; or presented to end user to decide.

## Implementation

As input, the SDK receives only the list of smart-contract addresses used in the app ; and a few API keys: Etherscan, Infura, Alchemy (optional), Onboard.js, Buildship (later when we're bigger).

On build step, the ABIs are fetched from etherscan or from our backend (see this endpoint used in widget <https://metadata.buildship.dev/api/info/0xFdf7BA4Edcb8F3F666239EBdA387506B3c598BD5?network_id=1> ).

## Drafts

<https://github.com/caffeinum/web3-ui><https://github.com/buildship-dev/web3-login>

## Reference

<https://github.com/thirdweb-dev/react>

## Roadmap

* make it work!
* gather some developer feedback;
* move from onboard.js to wagmi;
* use hooks everywhere;
* web3-login vs. web3-ui React component lib;
* implement build step thing so abstract away "smart-contracts" for the developer;
* transaction handling (popups, see pending txs, retry, re-fetch tx status);
* allow using [thegraph.com](http://thegraph.com) or our backend to make blockchain read requests faster (cache and combine multiple into one);
* non-React integrations: e.g. phaser.js;
* ENS support, NFT avatar support;
* all the fun stuff.


---

# 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://learn.buildship.xyz/frontend-roadmap/web3-sdk.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.
