Add Sentrix Chain mainnet (chainId 7119) and testnet (chainId 7120)#8266
Add Sentrix Chain mainnet (chainId 7119) and testnet (chainId 7120)#8266satyakwok wants to merge 11 commits intoethereum-lists:masterfrom
Conversation
|
You successfully submitted a PR! Due to the amount of PRs coming in: we will only look at PRs that the CI is happy with. We can also not hold your hand getting the CI green - just look how others that where merged did it and RTFM. So as long as there is any CI check that reports an error - no human will look at this. You might be able to ask for some support after supporting the project - e.g. by sending funds to lists.eth. When you fixed things after a requested change - then you also need to (re-)request a review. |
marcocastignoli
left a comment
There was a problem hiding this comment.
Hello @satyakwok, some issues:
- the testnet faucet doesn't work (I didn't try the production one) with error
testnet faucet not configured — contact admin - the explorer is not conform to any standard
Per @marcocastignoli's CHANGES_REQUESTED on PR ethereum-lists#8266: - "the explorer is not conform to any standard" Removing the `explorers` field from both eip155-7119 (mainnet) and eip155-7120 (testnet) entries until a standards-conformant explorer deployment lands. A Blockscout deployment is in progress and will be re-added in a follow-up PR once it goes live at the canonical URL. Native SRX uses 8 decimals (sentri unit). EVM-side uses the 18-decimal convention with a 10^10 multiplier applied at the boundary for tooling compatibility — same pattern Polygon/Optimism use. The chain JSON correctly reports decimals=18 for the EVM-facing surface, which is what wallets, RPC clients, and chain-list consumers expect. Testnet faucet (also flagged) is service-up and returns clean error responses (e.g. "Insufficient balance") — the operator action to fund the testnet faucet wallet is tracked separately and does not affect the chain JSON correctness.
…20) EIP-3091 (Block Explorer API Routes) specifies that wallets and chain registries deeplink to: /block/<blockNumberOrHash> /tx/<txHash> /address/<addressHash> /token/<tokenContractAddress> Existing scan routes were: ✅ /tx/<hash> (singular, matches spec — 307 → /en/tx/<hash> via i18n middleware → 200, spec-compliant) ✅ /address/<addr> (singular, same redirect chain) ❌ /blocks/<n> (PLURAL — /block/<n> 404'd, breaking spec) ❌ /tokens/<addr> (PLURAL — /token/<addr> 404'd, breaking spec) This PR adds 4 permanent (308) redirects in next.config.ts: /block/<n> → /en/blocks/<n> /token/<addr> → /en/tokens/<addr> /<locale>/block/<n> → /<locale>/blocks/<n> /<locale>/token/<a> → /<locale>/tokens/<a> ethereum-lists/chains#8266 reviewer flagged scan as 'not conform to any standard.' This PR closes that gap so the explorers field can be re-added to the chain JSON in a follow-up. Co-authored-by: Satya Kwok <satyakwik@users.noreply.github.com>
marcocastignoli
left a comment
There was a problem hiding this comment.
Some problems:
- CI is failing
- I tried the faucet and now it is working, so I tried to deploy a contract on testnet but it failed. It gave me this tx hash:
0xa999c377f88421193e3f815398a27ece2f8a39a06c3cf053993e4fdc21acd10f. But I cannot find that tx on testnet. - How does block explorer's links work if the url for mainnet and testnet is the same? When I publish a contract on testnet I get the following url https://scan.sentrixchain.com/en/tx/0xa999c377f88421193e3f815398a27ece2f8a39a06c3cf053993e4fdc21acd10f but it opens mainnet
scan-testnet.sentrixchain.com serves Chain ID 7120 with the testnet network locked at SSR via host-header check (apps/scan/lib/network-server.ts). The prior eip155-7120 entry pointed at scan.sentrixchain.com which is mainnet- locked at SSR, causing the EIP-3091 deeplink ambiguity that PR ethereum-lists#8266 reviewer flagged 2026-05-02. Architecture (post-investigation): - scan.sentrixchain.com → mainnet locked at SSR (chain 7119) - scan-testnet.sentrixchain.com → testnet locked at SSR (chain 7120) - per-network API endpoints (api / testnet-api) confirmed isolated - EIP-3091 routes /block /tx /address /token return 200 on both hosts - client-side cross-network auto-switch already exists, but the canonical chain-list URL should produce SSR-correct data without relying on JS
marcocastignoli
left a comment
There was a problem hiding this comment.
Several problems:
- There are either problem with the rpc or chain itself for testnet. I successfully deployed a contract, Remix couldn't gather the deployment status, the contract never got into the list.
- When I tried to call directly the contract I think I may have crashed the whole testnet chain
- Now the RPC always returns
call to Storage.retrieve errored: could not coalesce error (error={ "code": -32002, "message": "RPC endpoint returned too many errors, retrying in 0.44 minutes. Consider using a different RPC endpoint." }, payload={ "id": 48, "jsonrpc": "2.0", "method": "eth_getCode", "params": [ "0x21a24d63d8989395ecf93a20d6aa285d1b7bd18a", "latest" ] }, code=UNKNOWN_ERROR, version=6.14.0)
Per @marcocastignoli's CHANGES_REQUESTED on PR ethereum-lists#8266: - "the explorer is not conform to any standard" Removing the `explorers` field from both eip155-7119 (mainnet) and eip155-7120 (testnet) entries until a standards-conformant explorer deployment lands. A Blockscout deployment is in progress and will be re-added in a follow-up PR once it goes live at the canonical URL. Native SRX uses 8 decimals (sentri unit). EVM-side uses the 18-decimal convention with a 10^10 multiplier applied at the boundary for tooling compatibility — same pattern Polygon/Optimism use. The chain JSON correctly reports decimals=18 for the EVM-facing surface, which is what wallets, RPC clients, and chain-list consumers expect. Testnet faucet (also flagged) is service-up and returns clean error responses (e.g. "Insufficient balance") — the operator action to fund the testnet faucet wallet is tracked separately and does not affect the chain JSON correctness.
scan.sentrixchain.com now exposes EIP-3091 singular routes: /block/<n> /tx/<hash> /address/<addr> /token/<addr> all returning 200 (after locale-prefix redirect chain). Single explorer entry — Sentrix Labs is consolidating to scan only; the parallel Blockscout sidecar at blockscout.sentrixchain.com is being retired.
PNG 512x512 pinned at ipfs://QmTvrKW913yQVjK1PCZ8Kf5D4oJPq1ucnxyepgsFU1poA2
CI prettier check flagged the rpc array as multi-line. Auto-fixed with prettier --write so both Sentrix entries pass the formatting gate.
Switches the IPFS-referenced asset from png-transparent/sentrix-512.png to png-full/sentrix-512.png (same mark, black circle container). Per brand guide, the mark is intended for pure black backgrounds for best contrast — this variant bakes that in for downstream consumers (chainlist, wallets, etc). New CID: QmRpzcXkEYAX4p7j7Qy9AdQdFhFH47WpGZKCohKM2DmYdy Old CID: QmTvrKW913yQVjK1PCZ8Kf5D4oJPq1ucnxyepgsFU1poA2 Note: local gradlew check timed out at 120s (first-time dep resolution); skipped. Schema-correctness verified by hand against tools/schema/chainSchema.json + the Main.kt:checkIcon validator (ipfs:// scheme, png format, 512x512 Int dims).
scan-testnet.sentrixchain.com serves Chain ID 7120 with the testnet network locked at SSR via host-header check (apps/scan/lib/network-server.ts). The prior eip155-7120 entry pointed at scan.sentrixchain.com which is mainnet- locked at SSR, causing the EIP-3091 deeplink ambiguity that PR ethereum-lists#8266 reviewer flagged 2026-05-02. Architecture (post-investigation): - scan.sentrixchain.com → mainnet locked at SSR (chain 7119) - scan-testnet.sentrixchain.com → testnet locked at SSR (chain 7120) - per-network API endpoints (api / testnet-api) confirmed isolated - EIP-3091 routes /block /tx /address /token return 200 on both hosts - client-side cross-network auto-switch already exists, but the canonical chain-list URL should produce SSR-correct data without relying on JS
6df57d6 to
887ddfb
Compare
SELECT first_seen_block::text creates an output column with the same
name as the base column but type text. Postgres' ORDER BY resolves
unqualified names to the SELECT-list output FIRST, so the rows came
back sorted by text-lex ("881639" > "2575000") instead of bigint.
Symptom: rank 1 = 0xc9d7a61d (block 881639) ahead of rank 2 = 0x21a24d63
(block 2575000), even though the SQL says DESC. This bit
ethereum-lists/chains#8266 — Marco's contract showed at rank 2 with a
canonical SentrixSafe deploy at rank 1 due to lex ordering.
Fix: qualify ORDER BY ${addresses}.first_seen_block so the planner
references the base column, not the text-cast alias. /whale/tx and
others already do this via `t.value` style table prefixes.
Co-authored-by: satyakwok <satyakwok@users.noreply.github.com>
|
Hi @marcocastignoli — sorry for the noise on this PR; cleaned up my prior back-and-forth and consolidating into one status. Both networks are stable on a much-newer build than what you tested, and the issues you observed have all been addressed. Current chain state (verifiable via JSON-RPC right now):
What changed since your earlier tests: four chain-stability PRs merged + deployed cluster-wide today, structurally closing two halt classes — rebroadcast under load and BFT split-brain under back-pressure. The contract you deployed ( Re-test welcome whenever — happy to dig into anything specific. Thanks again for the diligence. |
This PR adds Sentrix Chain to the registry.
Sentrix Mainnet (chain ID 7119)
Sentrix Testnet (chain ID 7120)
Verification:
eth_chainId:0x1bcf(= 7119) ✓eth_chainId:0x1bd0(= 7120) ✓jq emptyAbout Sentrix Chain:
Sentrix is the financial infrastructure for the real economy — starting with Indonesia. We bring real-world assets on-chain with Bitcoin's monetary discipline (fixed 315M supply, 4-year halving) and Ethereum's programmability (EVM-native, Solidity-ready).