Skip to content

Add Sentrix Chain mainnet (chainId 7119) and testnet (chainId 7120)#8266

Open
satyakwok wants to merge 11 commits intoethereum-lists:masterfrom
satyakwok:add-sentrix-chain
Open

Add Sentrix Chain mainnet (chainId 7119) and testnet (chainId 7120)#8266
satyakwok wants to merge 11 commits intoethereum-lists:masterfrom
satyakwok:add-sentrix-chain

Conversation

@satyakwok
Copy link
Copy Markdown

This PR adds Sentrix Chain to the registry.

Sentrix Mainnet (chain ID 7119)

Sentrix Testnet (chain ID 7120)

Verification:

  • Mainnet eth_chainId: 0x1bcf (= 7119) ✓
  • Testnet eth_chainId: 0x1bd0 (= 7120) ✓
  • MetaMask network add tested ✓
  • JSONs validated locally with jq empty

About 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).

@github-actions
Copy link
Copy Markdown

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 marcocastignoli self-requested a review April 27, 2026 08:06
Copy link
Copy Markdown
Contributor

@marcocastignoli marcocastignoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

satyakwok added a commit to satyakwok/chains that referenced this pull request Apr 28, 2026
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.
satyakwok added a commit to Sentriscloud/frontend that referenced this pull request Apr 30, 2026
…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>
Copy link
Copy Markdown
Contributor

@marcocastignoli marcocastignoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

satyakwok added a commit to satyakwok/chains that referenced this pull request May 5, 2026
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
Copy link
Copy Markdown
Contributor

@marcocastignoli marcocastignoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

satyakwok and others added 7 commits May 5, 2026 22:01
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
@satyakwok satyakwok force-pushed the add-sentrix-chain branch from 6df57d6 to 887ddfb Compare May 5, 2026 20:01
@satyakwok satyakwok requested a review from marcocastignoli May 8, 2026 12:52
github-actions Bot pushed a commit to Sentriscloud/indexer that referenced this pull request May 8, 2026
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>
@satyakwok
Copy link
Copy Markdown
Author

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):

Mainnet Testnet
Chain ID 0x1bcf (7119) 0x1bd0 (7120)
Binary v2.1.88 v2.1.88
Height ~1,672,000+ ~3,067,000+
Validators 4-of-4 active 4-of-4 active
State_root cross-validator deterministic (STATE-FP fingerprints aligned) same
$ curl -s https://rpc.sentrixchain.com -X POST -H 'Content-Type: application/json' \
    -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
{"jsonrpc":"2.0","result":"0x1bcf","id":1}

$ curl -s https://testnet-rpc.sentrixchain.com -X POST -H 'Content-Type: application/json' \
    -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
{"jsonrpc":"2.0","result":"0x1bd0","id":1}

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 (0x21a24d63d8989395ecf93a20d6aa285d1b7bd18a) is on-chain and resolvable.

Re-test welcome whenever — happy to dig into anything specific. Thanks again for the diligence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants