npm.io
0.3.0 • Published 23h ago

@msgboard/petition

Licence
MIT
Version
0.3.0
Deps
3
Size
50 kB
Vulns
0
Weekly
0

MsgBoard

A censorship-resistant communication network on PulseChain, gated by proof of work.

Packages

Package Description
packages/client Core library — PoW engine, RPC client, message types. Published as @pulsechain/msgboard
packages/ui Svelte 5 + Vite frontend at msgboard.xyz
packages/sponsor Gas faucet service — monitors bridge events and sponsors new users
packages/hardhat Hardhat plugin for local development and testing

Getting Started

npm install
npm run build
npm run test
Run the UI locally
npm run ui:dev
Run the sponsor service

Requires PostgreSQL — start it with Docker:

docker compose up msgboard-postgres

Then:

npm run sponsor:start

Deployment

Production deploys to the Hetzner box via Ansible. See deploy/ansible/README.md for the runbook.

Client Library

npm i @pulsechain/msgboard
import * as msgboard from '@pulsechain/msgboard'
import { createPublicClient, http } from 'viem'
import { pulsechainV4 } from 'viem/chains'

const provider = createPublicClient({
  chain: pulsechainV4,
  transport: http(),
})

const client = new msgboard.MsgBoardClient(provider)

const work = await client.doPoW('hello', 'world')
await client.addMessage(work)

Environment Variables

Variable Required Description
MNEMONIC Sponsor only Mnemonic for the gas sponsorship wallet
DATABASE_URL Sponsor only PostgreSQL connection string
VITE_RPC_943 Build time RPC URL for PulseChain V4 testnet
VITE_RPC_369 Build time RPC URL for PulseChain mainnet
RPC_943 Sponsor only RPC URL override for testnet
RPC_369 Sponsor only RPC URL override for mainnet
DISABLED_CHAINS Optional Comma-separated chain IDs to skip (e.g. 369)
FAKE_TRANSFERS Optional Set to skip actual gas transfers (dry run)
WEB3_PROVIDER Faucet only JSON-RPC endpoint the faucet sends from
FAUCET_PRIVATE_KEY Faucet only Private key of the faucet sender wallet (maps to the faucet's PRIVATE_KEY)
PAYOUT Faucet only Amount paid out per faucet request
PROXY_COUNT Faucet only Reverse proxies in front of the faucet (set to 1 behind Caddy)
POSTGRES_PASSWORD Deployment PostgreSQL password shared by the database and sponsor

Production deployment variables are supplied through Ansible Vault — see deploy/ansible/README.md.

Keywords