> For the complete documentation index, see [llms.txt](https://docs-presto.gateway.fm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-presto.gateway.fm/overview/features-for-developers/how-to-use-presto-with-viem.sh.md).

# How To Use Presto with viem.sh

To use Presto with [viem.sh](http://viem.sh/) library using a custom RPC endpoint, follow these steps:

1. Install the [viem.sh](http://viem.sh/) library by running `npm install viem.sh` in your project directory.
2. Create your rollup ([How to Create a Rollup](/overview/main-functionality/how-to-create-a-rollup.md)), open it, and get the RPC URL ([What Is RPC](/overview/features-for-developers/what-is-rpc.md)).<br>

   <figure><img src="https://1439499438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti15D1ubA4vJmpJV8XEc%2Fuploads%2Fo3JlP11g34wgw3TpDhWG%2Frpc-link.png?alt=media&amp;token=1cf3f06c-c8cf-4a24-8159-442d63bab23f" alt=""><figcaption></figcaption></figure>
3. Set up a provider to connect to your Presto L2 network using your custom RPC endpoint.
4. Make sure to replace `YOUR_CUSTOM_RPC_ENDPOINT` with the URL of your custom RPC endpoint.

```jsx
const { viem } = require('viem.sh');

const provider = new viem.providers.JsonRpcProvider('YOUR_CUSTOM_RPC_ENDPOINT');

async function getBlockByNumber(blockNumber) {
  try {
    const block = await provider.getBlock(blockNumber);
    console.log(block);
  } catch (error) {
    console.log(error);
  }
}

getBlockByNumber(12345);
```
