Skip to main content

The Naming Principle

All canonical protocol infrastructure lives permanently under presschain.io. This is intentional and load-bearing. As PressChain decentralizes, operators behind these URLs can change - the URLs themselves never need to. Community-run RPC nodes can serve rpc.presschain.io without breaking any integration anywhere. presslabs.io hosts everything organizational - legal, grants, careers, node sales. PressLabs does not host RPC, explorer, or any dApp. This separation is what keeps the protocol from looking corporate-controlled.

Full Protocol Surface Map

presschain.io namespace

├── rpc.presschain.io           Public JSON-RPC HTTP endpoint
├── testnet-rpc.presschain.io   Testnet JSON-RPC HTTP endpoint
├── archive.rpc.presschain.io   Archive node (full state history)
├── ws.presschain.io            WebSocket RPC (real-time subscriptions)

├── bridge.presschain.io        Bridge API middleware  - internal port varies

├── portal.presschain.io        Outlet control plane  [port 3010]
├── outlet.presschain.io        Outlet-facing app     [port 3011]
├── court.presschain.io         Court dApp            [port 3012]
├── proposals.presschain.io     Governance            [port 3013]
├── ads.presschain.io           Ad marketplace        [port 3014]
├── status.presschain.io        Network telemetry     [port 3015]
├── docs.presschain.io          This documentation    [port 3016]
├── faucet.presschain.io        Testnet PRESS faucet  [port 3017]

├── key.presschain.io           PressKey identity wallet (extension hosted)
├── explorer.presschain.io      BlockScout (customized for Capsules)
├── swap.presschain.io          Token exchange
└── rights.presschain.io        Rights licensing marketplace

App Directory

portal.presschain.io

Outlet Control Plane · Port 3010The primary hub for editors, outlet managers, and journalists. Capsule queue management, acceptance monitoring, role management, import tools, distribution configuration, rights licensing, compliance exports, and the full Admin CMS.Source: /home/press/PressChain/apps/portal

outlet.presschain.io

Outlet-Facing App · Port 3011Public-facing outlet interface. Readers can browse canonical Capsules, see voting status, view integrity labels, and connect PressKey to vote directly.Source: /home/press/PressChain/apps/outlet

court.presschain.io

Court Engine dApp · Port 3012Public interface for the dispute resolution engine. Browse open cases, track case lifecycle, view evidence submissions, verdicts, and permanent integrity label assignments.Source: /home/press/PressChain/apps/court

proposals.presschain.io

Governance · Port 3013Protocol governance interface. Submit proposals, vote with bonded weight, view active and historical outcomes. Council emergency actions are logged here.Source: /home/press/PressChain/apps/proposals

ads.presschain.io

Ad Marketplace · Port 3014Proof-of-placement ad system with escrow. Advertisers create campaigns, funds are escrowed, placement is verified on-chain before release. 5% protocol fee.Source: /home/press/PressChain/apps/ads

status.presschain.io

Network Telemetry · Port 3015Live: block height, validator count, vault operator health, acceptance rate, average time to acceptance, burn pool size, next burn countdown, court backlog, governance participation.Source: /home/press/PressChain/apps/status

docs.presschain.io

Documentation · Port 3016This documentation. Mintlify-powered, Nunito + DM Serif Display, light-default with dark mode. Served via the presschain-next@docs systemd service.Source: /home/press/presschain-docs

faucet.presschain.io

Testnet Faucet · Port 3017Dispenses testnet PRESS (tPRESS) for development and testing. Chain ID 77117002. Rate limited per address.Source: /home/press/PressChain/apps/faucet

key.presschain.io

PressKey Identity WalletMandatory identity layer. Browser extension. Generates and encrypts private keys locally. Signs all protocol actions via nonce challenge. Never exposes raw keys to any server.

explorer.presschain.io

Customized BlockScoutNot a generic transaction scanner. First-class object is the Capsule. Shows acceptance ratios, integrity labels, vote breakdowns, revision lineage, burn countdown. Built on BlockScout with PressChain-specific customizations.

Monorepo Structure

All Next.js apps live in the main PressChain monorepo:
/home/press/PressChain/
└── apps/
    ├── portal/           next.config.ts   package.json   port 3010
    ├── outlet/           next.config.ts   package.json   port 3011
    ├── court/            next.config.ts   package.json   port 3012
    ├── proposals/        next.config.ts   package.json   port 3013
    ├── ads/              next.config.ts   package.json   port 3014
    ├── status/           next.config.ts   package.json   port 3015
    ├── docs/             (Mintlify)                       port 3016
    └── faucet/           next.config.ts   package.json   port 3017
Each app is fully independent with its own config and package manifest. They share design tokens and contract ABIs via workspace packages.

Static Marketing Site (presschain.io)

The main marketing site is a separate Vite/React app managed through cPanel on 38.83.53.142:
/home/press/presschain-site/
├── src/App.jsx
├── src/main.jsx
└── dist/               # Built output

# Deploy target (cPanel):
/home/pcpressroot/public_html/
Build and deploy:
cd /home/press/presschain-site
npm run build
\cp -rf dist/. /home/pcpressroot/public_html/
chown -R pcpressroot:pcpressroot /home/pcpressroot/public_html/
/scripts/rebuildhttpdconf && /scripts/restartsrv_httpd

presslabs.io - What Lives Here

PressLabs is the steward organization, not the chain. presslabs.io hosts everything commercial and organizational - never protocol infrastructure.
  • Legal disclosures and terms of service
  • Transparency reports
  • Ecosystem grants and programs
  • Validator node sales and pricing pages
  • Careers and public communications
  • Foundation contact and governance filings
PressLabs does not host: RPC, explorer, canonical dApps, or Bridge API.

RPC Surfaces

EndpointTypeNotes
rpc.presschain.ioJSON-RPC HTTPPublic. Standard EVM queries, tx submission.
testnet-rpc.presschain.ioJSON-RPC HTTPTestnet only. Chain ID 77117002.
archive.rpc.presschain.ioArchive JSON-RPCFull historical state. All block history from genesis.
ws.presschain.ioWebSocketReal-time block and event subscriptions.
127.0.0.1:8545Internal HTTPMainnet. Server-side only - never expose publicly.
127.0.0.1:9545Internal HTTPTestnet. Server-side only - never expose publicly.

Apache Proxy Configs

Each subdomain’s proxy configuration lives at:
/etc/apache2/conf.d/userdata/ssl/2_4/pcpressroot/<domain>/proxy.conf
Pattern for all Next.js app subdomains:
# Example: portal.presschain.io → port 3010
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3010/
ProxyPassReverse / http://127.0.0.1:3010/
RequestHeader set X-Forwarded-Proto "https"
After any proxy config change:
/scripts/rebuildhttpdconf && /scripts/restartsrv_httpd