Skip to main content
EVM-Compatible · Chain ID 77117002

Build on the
journalism layer

PressChain is an EVM-compatible L1 with a journalism-specific protocol on top. If you know Solidity, ethers.js, and REST APIs, you already know 80% of what you need.

What You Are Building On

PressChain runs full EVM execution. Contracts govern Capsule publishing, role bonding, acceptance voting, and court resolution. The Bridge API is a REST middleware layer that normalizes chain data for outlet and dApp integrations. PressKey handles all signing and identity.
Your App / Outlet / dApp
         |  HTTPS
Bridge API (middleware)
bridge.presschain.io - Bearer auth - normalizes chain data
         |  JSON-RPC / ethers
PressChain EVM Node
rpc.presschain.io - ID 77117002
ArticleRegistry - CapsuleAcceptance - BondManager

Four Rules Before You Write a Line of Code

These are architectural rules, not suggestions. Breaking them creates security and audit problems.
1

WordPress and outlet apps never touch RPC

Your application calls the Bridge API. The chain is accessed through API Gateway - Bridge - Protocol API. This is non-negotiable.
2

PressKey signs everything

Every write action - voting, publishing, role purchases, court participation - requires a PressKey-signed nonce. You never handle raw private keys in your app layer.
3

The Bridge is your stable surface

Chain data can change shape between protocol versions. Build against bridge.presschain.io routes, not raw RPC, unless you are building validator or node tooling.
4

Capsule state is the source of truth

Never cache acceptance state for more than one block. A Capsule has permanent identity and permanent history - query fresh.

Quick Environment Setup

# Add PressChain Testnet to MetaMask or PressKey
Network Name:   PressChain Testnet
RPC URL:        https://rpc.presschain.io
Chain ID:       77117002
Currency:       PRESS
Explorer:       https://explorer.presschain.io

# Get free testnet PRESS
curl https://faucet.presschain.io/api/drip \
  -X POST -H "Content-Type: application/json" \
  -d '{"address": "0xYOUR_ADDRESS"}'

# Bridge health check
curl https://bridge.presschain.io/health
# {"status":"ok","service":"presschain-bridge","chainId":77117002}

ethers v6 Provider

import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider("https://rpc.presschain.io");
const network = await provider.getNetwork();
console.log(network.chainId); // 77117002n

Runtime Ports (Operators)

presschain-next@portal3010
presschain-next@outlet3011
presschain-next@court3012
presschain-next@proposals3013
presschain-next@ads3014
presschain-next@status3015
presschain-next@docs3016
presschain-next@faucet3017
gateway46100
protocol-api46101
indexer46102
court-engine46103
media-engine46104
burn-engine46105
Mainnet HTTP8545
Mainnet WS8546
Testnet HTTP9545
Testnet WS9546

Where to Go Next

Quickstart

Deploy a contract call and read your first Capsule in under 10 minutes.

Architecture Overview

Domain separation, service topology, and why the stack is built this way.

Contract Registry

All deployed addresses with descriptions and ABI references.

Bridge API

Full route reference. The primary integration surface for everything.