plugport
Verifiable database that speaks MongoDB, PostgreSQL, MySQL and Redis wire protocols, backed by MonadDb. Co-built with a small team.
- date
- stack
- typescript node next.js solidity monad grafana
- code
- github.com/PlugPort-Protocol/plugport
- live
- testnet.plugport.wtf
PlugPort lets an existing app keep its usual database drivers (mongosh, psql, mysql,
redis-cli and their Node, Python and Go clients) while the data lives in a verifiable store on
MonadDb’s Merkle Patricia Trie. Every protocol goes through one translation layer into the same
document store. Auth is wallet-based (SIWE and on-chain API keys), with gasless meta-transactions
and AES-256-GCM encryption for private collections.
I co-built PlugPort with a small team. My work was mostly on the server and dashboard in the v4 release:
Server
- Real auth on every wire protocol, with per-wallet namespaces and TLS on the wire connections
- Customer isolation: per-customer private stores, encrypted and held on the private contract, and the first wallet to write to a collection becomes its owner
- Reliability: one failed RPC call no longer takes the server down; RPC rate limits are respected with an ordered fallback chain across providers
- Gas station: split one all-purpose key into per-role wallets and serialised transactions through a shared nonce sequencer
- Performance and limits: the key index loads from a snapshot instead of replaying the log, usage analytics are batched, and the memory a client can make the server hold is bounded
- Query fixes: MySQL, aggregate and
HAVINGsupport, SQL joins over HTTP, and indexed queries on the chain store - VPS deployment, and fixes for more than 20 traced bugs
Dashboard and operations
- A redesigned dashboard with EIP-712 key signing, automatic switching to Monad Testnet, and privacy settings that default to private
- Fixed on-chain API keys that could never authenticate, and stale-nonce meta-transactions
- Grafana alerts to Telegram for crashes, memory, failing writes and low-gas wallets