The active PressChain protocol major is V3. The testnet is the environment developers should use to integrate identity, read chain state, test transaction flows and validate indexers before any mainnet assumptions are introduced.
Setting
Value
Network name
presschain-testnet
Chain ID
77117002
Chain ID in hex
0x498B64A
Public RPC
https://rpc.presschain.io
Protocol major
v3
Recovery epoch
1
Canonical Capsule ID
bytes32
Do not copy testnet contract addresses, balances or genesis assumptions into a future mainnet configuration. Mainnet has an explicit authority and readiness process and will receive a new PRESS asset.
Use the V3 testnet to exercise real protocol semantics:
resolving identities and role state
preparing and signing user-authorized transactions
working with canonical bytes32 Capsule IDs
attaching and reading evidence in test flows
building contributor and attribution interfaces
indexing logs and testing replay behavior
validating economic action classification without assuming final mainnet fee amounts
A testnet integration should be production-shaped even when the assets have no mainnet value. That means no private keys in source control, no server-side custody shortcuts and no client logic that silently bypasses protocol permissions.
Contract addresses should be loaded from the approved deployment or authority manifest for the environment. Avoid scattering addresses through components. Centralizing them makes it possible to verify a deployment as a unit and prevents one stale constant from silently pointing to an older contract.
The V3 authority file explicitly selects bytes32 Capsule IDs and disables legacy uint256 writes. Preserve these identifiers as strings in JSON and browser code.Do not run a Capsule ID through Number(), parseInt() or database columns that cannot safely preserve 256 bits. A lowercased 0x-prefixed 64-byte hex string is a practical application representation.
The current network authority records recovery epoch 1. This is useful operational context when comparing old deployments or archived engineering material. Applications should follow the current authority manifest rather than inferring canonical state from the newest-looking historical file.
A successful testnet integration does more than render a balance. It proves the application can survive the conditions that matter in production: RPC timeouts, duplicate submissions, transaction replacement, rejected permissions, stale projections, reorg handling and users locking their signer while an action is being prepared.Build those failure paths now. Mainnet should be a controlled environment transition, not the first time the application behaves like production software.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"PressChain","description":"Developer documentation for PressChain V3, verifiable journalism infrastructure, provenance, evidence, identity, reputation and PRESS economic enforcement.","colors":{"primary":"#0095F0","light":"#C9E8F8","dark":"#002A43"},"appearance":{"default":"light","strict":true},"background":{"color":{"light":"#F4F2EE","dark":"#001E31"}},"navbar":{"links":[{"href":"https://explorer.presschain.io","label":"Explorer"},{"href":"https://portal.presschain.io","label":"Portal"},{"href":"https://key.presschain.io","label":"PressKey"}]},"footer":{"socials":{"github":"https://github.com/PressBlockchain"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"presschain","hasAudioNarration":false,"actualSubdomain":"presschain","customDomains":["docs.presschain.io"],"gitSource":{"type":"github","owner":"pressblockchain","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aa55f5f7e6e937e5abfd85c","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Capsules","count":6},{"language":"default","tag":"PRESS Economy","count":5},{"language":"default","tag":"Start Here","count":5},{"language":"default","tag":"SDK \u0026 Integration","count":4},{"language":"default","tag":"Evidence","count":4},{"language":"default","tag":"Identity \u0026 Roles","count":4},{"language":"default","tag":"Network","count":4},{"language":"default","tag":"Build Your First App","count":4},{"language":"default","tag":"Reference","count":4},{"language":"default","tag":"API","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--presschain-canvas: #F4F2EE;--presschain-navy: #002A43;--presschain-navy-2: #0F3D56;--presschain-blue: #0095F0;--presschain-blue-soft: #C9E8F8;--presschain-ink: #1A2B3A;--presschain-muted: #6E7681;--presschain-line: #D3D8DC;--presschain-soft: #EFF2F3;--presschain-surface: #FFFFFF}html,body{background:var(--presschain-canvas);color:var(--presschain-ink);font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif}h1,h2,h3,h4{color:var(--presschain-navy);letter-spacing:-0.018em}h1{letter-spacing:-0.035em}a{text-underline-offset:3px}code,pre,kbd,samp{font-family:\"JetBrains Mono\", \"SFMono-Regular\", Consolas, monospace}pre{border:1px solid var(--presschain-line);border-radius:10px}.pc-kicker{color:var(--presschain-blue);font-size:0.76rem;font-weight:750;letter-spacing:0.11em;text-transform:uppercase}.pc-editorial{font-family:\"Instrument Serif\", Georgia, serif;color:var(--presschain-navy);font-weight:400}.pc-panel{background:var(--presschain-surface);border:1px solid var(--presschain-line);border-radius:10px;box-shadow:0 8px 28px rgba(0, 42, 67, 0.055);padding:1.1rem 1.2rem}.pc-fact{border-left:3px solid var(--presschain-blue);background:rgba(201, 232, 248, 0.30);border-radius:0 8px 8px 0;padding:0.9rem 1rem}.pc-muted{color:var(--presschain-muted)}.pc-rule{border-color:var(--presschain-line)}"}],"page":{"pagePath":"network/v3-testnet","slug":"/network/v3-testnet","pageMetadata":{"title":"V3 Testnet","description":"Canonical connection parameters and environment rules for the active PressChain V3 test network.","href":"/network/v3-testnet"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Canonical connection parameters and environment rules for the active PressChain V3 test network.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`v3-testnet`,children:`V3 Testnet`}),`\n`,_jsx(_components.p,{children:`The active PressChain protocol major is V3. The testnet is the environment developers should use to integrate identity, read chain state, test transaction flows and validate indexers before any mainnet assumptions are introduced.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Network name`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`presschain-testnet`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Chain ID`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`77117002`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Chain ID in hex`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0x498B64A`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Public RPC`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://rpc.presschain.io`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Protocol major`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`v3`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Recovery epoch`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Canonical Capsule ID`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`bytes32`})})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not copy testnet contract addresses, balances or genesis assumptions into a future mainnet configuration. Mainnet has an explicit authority and readiness process and will receive a new PRESS asset.`})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-network-before-using-it`,children:`Verify the network before using it`}),`\n`,_jsx(_components.p,{children:`A client should not trust a label alone. Query the connected endpoint and verify the chain ID before enabling a write action.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`curl`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` -s`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` https://rpc.presschain.io`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` -H`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` 'content-type: application/json'`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` --data`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_chainId\",\"params\":[]}'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The expected result is the hexadecimal representation of `,_jsx(_components.code,{children:`77117002`}),`, currently `,_jsx(_components.code,{children:`0x498B64A`}),`.`]}),`\n`,_jsx(_components.p,{children:`In a browser application using PressKey:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`const`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` provider`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` =`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` window.presschain;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`if`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` (`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`!`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`provider?.isPressKey) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` throw`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` new`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` Error`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`(`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"PressKey is required for this action\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`const`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` chainId`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` =`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` await`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` provider.`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`request`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`({ method: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"eth_chainId\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`if`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` (`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`String`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`(chainId).`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`toLowerCase`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`() `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`!==`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:` \"0x498b64a\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` throw`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` new`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` Error`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`(`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:\"`Unexpected PressChain network: ${\"}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`chainId`}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:\"}`\"}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Your app should show a clear network mismatch state rather than attempting a transaction against the wrong chain.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-testnet-is-for`,children:`What testnet is for`}),`\n`,_jsx(_components.p,{children:`Use the V3 testnet to exercise real protocol semantics:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`resolving identities and role state`}),`\n`,_jsx(_components.li,{children:`preparing and signing user-authorized transactions`}),`\n`,_jsxs(_components.li,{children:[`working with canonical `,_jsx(_components.code,{children:`bytes32`}),` Capsule IDs`]}),`\n`,_jsx(_components.li,{children:`attaching and reading evidence in test flows`}),`\n`,_jsx(_components.li,{children:`building contributor and attribution interfaces`}),`\n`,_jsx(_components.li,{children:`indexing logs and testing replay behavior`}),`\n`,_jsx(_components.li,{children:`validating economic action classification without assuming final mainnet fee amounts`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A testnet integration should be production-shaped even when the assets have no mainnet value. That means no private keys in source control, no server-side custody shortcuts and no client logic that silently bypasses protocol permissions.`}),`\n`,_jsx(Heading,{level:`2`,id:`configuration-pattern`,children:`Configuration pattern`}),`\n`,_jsx(_components.p,{children:`Keep network configuration explicit and environment-scoped.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light github-dark`,style:{backgroundColor:`#fff`,\"--shiki-dark-bg\":`#24292e`,color:`#24292e`,\"--shiki-dark\":`#e1e4e8`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` const`}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:` presschainV3`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` =`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` name: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"presschain-testnet\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` chainId: `}),_jsx(_components.span,{style:{color:`#005CC5`,\"--shiki-dark\":`#79B8FF`},children:`77117002`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` chainIdHex: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"0x498B64A\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` rpcUrl: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"https://rpc.presschain.io\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:` protocolMajor: `}),_jsx(_components.span,{style:{color:`#032F62`,\"--shiki-dark\":`#9ECBFF`},children:`\"v3\"`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`} `}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:`as`}),_jsx(_components.span,{style:{color:`#D73A49`,\"--shiki-dark\":`#F97583`},children:` const`}),_jsx(_components.span,{style:{color:`#24292E`,\"--shiki-dark\":`#E1E4E8`},children:`;`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Contract addresses should be loaded from the approved deployment or authority manifest for the environment. Avoid scattering addresses through components. Centralizing them makes it possible to verify a deployment as a unit and prevents one stale constant from silently pointing to an older contract.`}),`\n`,_jsx(Heading,{level:`2`,id:`canonical-identifiers`,children:`Canonical identifiers`}),`\n`,_jsxs(_components.p,{children:[`The V3 authority file explicitly selects `,_jsx(_components.code,{children:`bytes32`}),` Capsule IDs and disables legacy `,_jsx(_components.code,{children:`uint256`}),` writes. Preserve these identifiers as strings in JSON and browser code.`]}),`\n`,_jsxs(_components.p,{children:[`Do not run a Capsule ID through `,_jsx(_components.code,{children:`Number()`}),`, `,_jsx(_components.code,{children:`parseInt()`}),` or database columns that cannot safely preserve 256 bits. A lowercased `,_jsx(_components.code,{children:`0x`}),`-prefixed 64-byte hex string is a practical application representation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`recovery-epoch`,children:`Recovery epoch`}),`\n`,_jsxs(_components.p,{children:[`The current network authority records recovery epoch `,_jsx(_components.code,{children:`1`}),`. This is useful operational context when comparing old deployments or archived engineering material. Applications should follow the current authority manifest rather than inferring canonical state from the newest-looking historical file.`]}),`\n`,_jsx(Heading,{level:`2`,id:`readiness-mindset`,children:`Readiness mindset`}),`\n`,_jsx(_components.p,{children:`A successful testnet integration does more than render a balance. It proves the application can survive the conditions that matter in production: RPC timeouts, duplicate submissions, transaction replacement, rejected permissions, stale projections, reorg handling and users locking their signer while an action is being prepared.`}),`\n`,_jsx(_components.p,{children:`Build those failure paths now. Mainnet should be a controlled environment transition, not the first time the application behaves like production software.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"V3 Testnet","description":"Canonical connection parameters and environment rules for the active PressChain V3 test network.","href":"/network/v3-testnet"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"V3 Testnet","slug":"v3-testnet","depth":1,"children":[]},{"title":"Verify the network before using it","slug":"verify-the-network-before-using-it","depth":2,"children":[]},{"title":"What testnet is for","slug":"what-testnet-is-for","depth":2,"children":[]},{"title":"Configuration pattern","slug":"configuration-pattern","depth":2,"children":[]},{"title":"Canonical identifiers","slug":"canonical-identifiers","depth":2,"children":[]},{"title":"Recovery epoch","slug":"recovery-epoch","depth":2,"children":[]},{"title":"Readiness mindset","slug":"readiness-mindset","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"presschain","siteName":"PressChain","title":"V3 Testnet - PressChain","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-12T14:19:05.988Z","originalFileLocation":"network/v3-testnet.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Canonical connection parameters and environment rules for the active PressChain V3 test network.\">\u003cmeta data-mint-head name=\"application-name\" content=\"PressChain\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/presschain/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/presschain/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/presschain/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/presschain/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"V3 Testnet - PressChain\">\u003cmeta data-mint-head property=\"og:description\" content=\"Canonical connection parameters and environment rules for the active PressChain V3 test network.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"PressChain\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.presschain.io/network/v3-testnet\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://presschain.mintlify.site/_mintlify/api/og/v2?division=Network\u0026amp;title=V3+Testnet\u0026amp;description=Canonical+connection+parameters+and+environment+rules+for+the+active+PressChain+V3+test+network.\u0026amp;theme=55c4a8ef642d0077b943cef5\u0026amp;signature=d6cdda5253e723d59b8d660393cf8921c9e43ea15a5c3278624ca072431b8d6a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"V3 Testnet - PressChain\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Canonical connection parameters and environment rules for the active PressChain V3 test network.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://presschain.mintlify.site/_mintlify/api/og/v2?division=Network\u0026amp;title=V3+Testnet\u0026amp;description=Canonical+connection+parameters+and+environment+rules+for+the+active+PressChain+V3+test+network.\u0026amp;theme=55c4a8ef642d0077b943cef5\u0026amp;signature=d6cdda5253e723d59b8d660393cf8921c9e43ea15a5c3278624ca072431b8d6a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/presschain/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"PressChain\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0095F0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.presschain.io/network/v3-testnet\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/network/v3-testnet.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.presschain.io/#organization\",\"name\":\"PressChain\",\"url\":\"https://docs.presschain.io\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.presschain.io#website\",\"name\":\"PressChain\",\"url\":\"https://docs.presschain.io\",\"publisher\":{\"@id\":\"https://docs.presschain.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.presschain.io/network/v3-testnet#webpage\",\"url\":\"https://docs.presschain.io/network/v3-testnet\",\"name\":\"V3 Testnet\",\"description\":\"Canonical connection parameters and environment rules for the active PressChain V3 test network.\",\"dateModified\":\"2026-09-12T14:19:05.988Z\",\"isPartOf\":{\"@id\":\"https://docs.presschain.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.presschain.io/network/v3-testnet#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.presschain.io/network/v3-testnet#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PressChain\",\"item\":\"https://docs.presschain.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"V3 Testnet\",\"item\":\"https://docs.presschain.io/network/v3-testnet\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.presschain.io/network/v3-testnet#article\",\"headline\":\"V3 Testnet\",\"name\":\"V3 Testnet\",\"description\":\"Canonical connection parameters and environment rules for the active PressChain V3 test network.\",\"url\":\"https://docs.presschain.io/network/v3-testnet\",\"mainEntityOfPage\":{\"@id\":\"https://docs.presschain.io/network/v3-testnet#webpage\"},\"dateModified\":\"2026-09-12T14:19:05.988Z\",\"publisher\":{\"@id\":\"https://docs.presschain.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.presschain.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"PressChain\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"PressChain","nav":{"global":null,"groups":[{"group":"Start Here","pages":[{"title":"PressChain Developer Documentation","href":"/index"},{"title":"What is PressChain?","href":"/introduction/what-is-presschain"},{"title":"Architecture","href":"/introduction/architecture"},{"title":"Protocol Principles","href":"/introduction/protocol-principles"},{"title":"Terminology","href":"/introduction/terminology"}]},{"group":"Build Your First App","pages":[{"title":"Connect to PressChain","href":"/quickstart/connect"},{"title":"Read Chain State","href":"/quickstart/read-chain"},{"title":"Build with PressKey","href":"/quickstart/presskey-app"},{"title":"Build an Evidence Viewer","description":"A practical example for reading evidence, tallies and artifact integrity for a Capsule.","href":"/quickstart/evidence-app"}]},{"group":"Network","pages":[{"title":"V3 Testnet","href":"/network/v3-testnet"},{"title":"RPC","description":"Connect applications and infrastructure to PressChain using Ethereum-compatible JSON-RPC.","href":"/network/rpc"},{"title":"Contracts","href":"/network/contracts"},{"title":"Mainnet Readiness","href":"/network/mainnet-readiness"}]},{"group":"Identity \u0026 Roles","pages":[{"title":"PressKey Identity","href":"/identity/presskey"},{"title":"Protocol Roles","href":"/identity/roles"},{"title":"Bonds \u0026 Permissions","href":"/identity/bonds-permissions"},{"title":"Outlets \u0026 Organizations","href":"/identity/outlets"}]},{"group":"Capsules","pages":[{"title":"Capsules","href":"/capsules/overview"},{"title":"Capsule Metadata","href":"/capsules/metadata"},{"title":"Capsule Lifecycle","href":"/capsules/lifecycle"},{"title":"Cover Media","href":"/capsules/cover-media"},{"title":"Contributors","href":"/capsules/contributors"},{"title":"Revisions","href":"/capsules/revisions"}]},{"group":"Evidence","pages":[{"title":"Evidence","href":"/evidence/overview"},{"title":"Community \u0026 Official Evidence","href":"/evidence/community-official"},{"title":"Evidence Voting \u0026 Finalization","href":"/evidence/voting-finalization"},{"title":"Evidence Media","href":"/evidence/media"}]},{"group":"Verification","pages":[{"title":"Reviews \u0026 Challenges","href":"/verification/reviews-challenges"},{"title":"Validators","href":"/verification/validators"}]},{"group":"Provenance","pages":[{"title":"Provenance","href":"/provenance/overview"},{"title":"Attribution","href":"/provenance/attribution"},{"title":"Content Hashing","href":"/provenance/hashing"}]},{"group":"PRESS Economy","pages":[{"title":"PRESS","href":"/economy/press"},{"title":"Economic Principles","href":"/economy/economic-principles"},{"title":"Fee Classes","href":"/economy/fee-classes"},{"title":"Rewards \u0026 Treasury","href":"/economy/rewards-treasury"},{"title":"Mainnet Token Policy","href":"/economy/mainnet-token-policy"}]},{"group":"Bounties","pages":[{"title":"Bounties","href":"/bounties/overview"},{"title":"Automatic Bounties","href":"/bounties/automatic"},{"title":"Bounty Lifecycle \u0026 Settlement","href":"/bounties/lifecycle-settlement"}]},{"group":"Data Model","pages":[{"title":"Trust Object","href":"/data/trust-object"},{"title":"Canonical Records","href":"/data/canonical-records"},{"title":"Relationships, Trust \u0026 Risk","href":"/data/relationships-risk"}]},{"group":"API","pages":[{"title":"API Overview","href":"/api/overview"},{"title":"Bounty Read API","href":"/api/bounty-reads"},{"title":"Errors \u0026 Pagination","href":"/api/errors-pagination"}]},{"group":"RPC","pages":[{"title":"JSON-RPC Reference","href":"/rpc/json-rpc"},{"title":"Contract Reads","href":"/rpc/contract-reads"},{"title":"Transactions \u0026 Events","href":"/rpc/transactions-events"}]},{"group":"PressKey","pages":[{"title":"PressKey Provider","href":"/presskey/provider"},{"title":"PressKey Events","href":"/presskey/events"},{"title":"PressKey Security","href":"/presskey/security"}]},{"group":"SDK \u0026 Integration","pages":[{"title":"SDK Strategy","href":"/developers/sdk"},{"title":"Indexing","href":"/developers/indexing"},{"title":"Explorer Integration","href":"/developers/explorer"},{"title":"Feed Intelligence","href":"/developers/feed-intelligence"}]},{"group":"Operations \u0026 Security","pages":[{"title":"Security Model","href":"/operations/security"},{"title":"Versioning","href":"/operations/versioning"},{"title":"Production Checklist","href":"/operations/production-checklist"}]},{"group":"Reference","pages":[{"title":"Constants \u0026 Network Reference","href":"/reference/constants"},{"title":"Role Matrix","href":"/reference/role-matrix"},{"title":"Action Matrix","href":"/reference/action-matrix"},{"title":"Glossary","href":"/reference/glossary"}]}]},"basePath":"","title":"V3 Testnet - PressChain","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}