Ponder

/ponder-sh151

An open-source backend framework for crypto apps

https://ponder.sh/docs/indexing/call-traces#register-an-indexing-function how does this work if you're trying to index eth xfrs to an EOA (or CREATE2 address that hasn't been deployed)?
New release! Ponder 0.6.0 improves observability, simplifies self hosting, and updates to the latest version of Viem.

- New /ready endpoint
- Terminal UI improvements (req/s, latest block)
- Better ETA formula
/Ponder
@typedarray.eth in what order do the events / call handlers execute in ponder?
Name a better indexer than /ponder-sh.

I'll wait.
Working on indexing huts built in /stokefire.
biggest critique of ponder right now is the logging immediately jumps to the table and I can't scroll up to see any logs that I might have emitted from the indexing function bodies.

As a serial console.log debugger this is terrible 😩
Should Ponder replace SQLite with PGlite (pglite.dev) as the dev database?

Pros:
1) Less magic/astonishment ("wait, what database am I using rn?")
2) Simpler schema definition API (currently stuck with the subset of stuff that both PG and SQLite support)
/Ponder
This is my favorite weird edge case in our codebase. If you manage to crash a Ponder app with this error, I'll give you $100.

github.com/ponder-sh/ponder/blob/c19358158d3be13e0c8bab8450ba16ab3f71011d/packages/core/src/sync-store/postgres/store.ts#L222-L230
/Ponder
You won't see it on GitHub, but it's a huge day here at Ponder HQ.
/Ponder
If you noticed "missing events" in your Ponder app recently, you may have been affected by this (rare) bug. Upgrade to 0.5.3 for the fix.

It's more common on low-throughput chains where bloom filters are mostly empty. S/o @kjs and Mateus - was a team effort!

https://x.com/devjoshstevens/status/1816567954521383339
/Ponder
Introducing API functions

With today's 0.5.0 release, you can build custom API endpoints directly in your Ponder app.

Use cases
- Replace GraphQL with tRPC or REST
- Build SQL queries with Drizzle
- Merge onchain & offchain data
/Ponder
We're hiring backend, infrastructure, and web framework engineers at Ponder (ponder.sh).

We have hundreds of production users, growing 40% per month.

NYC required. Team is 3 people, all engineers. DM with interest or referrals.
/Ponder
Anyone writing tests for your ponder indexer?

How are you doing it?
In solidity events uint256 types are returned as BigInts.

Is it best to convert these to strings when storing?
Not good to convert to int type?
Just got a project up and running in /ponder.

Really good dev experience so far!

Connects really well with Foundry too.
Just shipped a *very exciting* experimental feature in the Ponder telegram
/Ponder
Ponder is now 10-50x faster during historical indexing

0.4.37 introduces batched database writes & an in-memory cache for frequently accessed records

Apps that use a remote database will be much faster
/Ponder
Ponder 0.4.35 improves support for Foundry/Anvil

With a few lines of code, you can integrate Ponder with any Foundry development workflow using `forge script`

Build your indexer alongside your smart contracts, all on your local machine
/Ponder
New in Ponder: JSON columns

Use p.json() for
1) Solidity structs
2) Storing raw log/trace/receipt objects alongside application data
3) Any schema-less KV data

Include a custom TypeScript type to enjoy autocomplete + type checking across your app.
Shipped: Call trace indexing

This was a top requested feature from teams looking to migrate their subgraphs to Ponder.

Why use call traces?
Ponder 0.4.16 introduces block indexing

Block indexing is great for cron / scheduled tasks:
- Read the latest price from an oracle contract every minute to build a price chart
- Aggregate data every hour to update protocol-wide statistics
Ponder 0.4.15 improves crash recovery behavior

Before, if a fully indexed app crashed (often due to a short-lived RPC reliability issue) it would need to reindex from scratch

Now, Ponder apps periodically checkpoint their indexing progress. After a crash, you can restart the app and it will pick up where it left off
In the next version of Ponder, error logs for SQL constraint violations are more human-friendly
0.4.9 adds support for transaction receipts and speeds up historical indexing by ~50%, thanks to @kjs

https://x.com/kyscott18/status/1782826942908997653