@sentrix-labs/canonical-contracts
v1.1.1
Published
Canonical EVM contracts for Sentrix Chain (WSRX, Multicall3, SentrixSafe, TokenFactory). Typed ABIs + per-chain address registry for viem / ethers / wagmi.
Downloads
301
Maintainers
Readme
What's in here
Deployed on both chains (mainnet 7119 + testnet 7120)
| Contract | Purpose |
|---|---|
| WSRX | Wrapped SRX — ERC-20 (18 decimals) backed 1:1 by native SRX. Lets EVM dApps hold SRX as a token. |
| Multicall3 | Standard Multicall3 (mds1/multicall) for batched read/write calls. |
| SentrixSafe | Minimal multi-sig wallet (Gnosis Safe v1.4.1-derived) for treasury management. Currently configured 1-of-1 with the Sentrix Labs authority signer (0xa25236925bc10954e0519731cc7ba97f4bb5714b) on both chains — see docs/ADDRESSES.md. |
| TokenFactory | Deploys minimal ERC-20 tokens via a single function call. v1 + v1.1.0 both deployed (see addresses doc). |
Deployed on mainnet (7119) only
| Contract | Purpose |
|---|---|
| CoinBlastCurve | Bonding-curve token contract. The CBLAST genesis token launched via this curve on 2026-05-01 — first on-chain CoinBlast bonding-curve launch. |
In-tree but not yet deployed
| Contract | Purpose |
|---|---|
| CoinBlastFactory | Launchpad-style factory that spawns new CoinBlastCurve instances. Code-complete; deployment gated on the launchpad UX surface landing. |
| MerkleAirdrop | Merkle-root airdrop distribution contract for the planned eligibility-based SRX drops. Code-complete; deployment gated on the airdrop campaign go-signal. |
| StrategicReserveTimelock | Time-locked treasury vault for the Strategic Reserve allocation. Code-complete; deployment gated on Strategic Reserve EOA → contract migration plan. |
See docs/ADDRESSES.md for deployed addresses on each chain.
Quickstart
git clone --recurse-submodules https://github.com/sentrix-labs/canonical-contracts.git
cd canonical-contracts
# Install Foundry: https://getfoundry.sh
curl -L https://foundry.paradigm.xyz | bash && foundryup
# Install dependencies
make install
# Build + test
make build
make test
# Coverage
make coverage # outputs coverage/lcov.infoIntegrate
npm install @sentrix-labs/canonical-contracts ethersimport { ethers } from "ethers";
import abi from "@sentrix-labs/canonical-contracts/deployments/abi/WSRX.json";
import deployments from "@sentrix-labs/canonical-contracts/deployments/7119.json";
const provider = new ethers.JsonRpcProvider("https://rpc.sentrixchain.com");
const wsrx = new ethers.Contract(deployments.WSRX.address, abi.abi, provider);
console.log("totalSupply:", await wsrx.totalSupply());Full integration guide → docs/INTEGRATION.md.
Deploy
End-to-end runbook: docs/DEPLOYMENT.md. High-level flow:
cp .env.example .env
$EDITOR .env
forge script script/DeployWSRX.s.sol --rpc-url sentrix_testnet --broadcast --private-key $DEPLOYER_PRIVATE_KEY
forge script script/DeployWSRX.s.sol --rpc-url sentrix_mainnet --broadcast --private-key $DEPLOYER_PRIVATE_KEY
# Update deployments/7119.json + 7120.json + CHANGELOG.md
# Tag release
git tag v1.0.0 && git push --tagsCI auto-creates a GitHub Release from the CHANGELOG entry.
Verify
Sourcify-equivalent verification is on the ecosystem readiness Tier 1 backlog. Until that lands, run manual verification per docs/DEPLOYMENT.md §12.
Health-check a deployment:
WSRX_ADDR=0x... MULTICALL3_ADDR=0x... SAFE_ADDR=0x... FACTORY_ADDR=0x... \
forge script script/CheckDeployment.s.sol --rpc-url sentrix_testnetSecurity
- All contracts immutable (no upgrade proxy — see
docs/SECURITY_MODEL.md) - Pre-merge:
forge test,forge build --sizes,slither,gitleaks - Daily: scheduled slither + mythril runs (
security.yml) - Vulnerability disclosure:
[email protected](SECURITY.md)
Docs
| Doc | What it covers |
|---|---|
| docs/ARCHITECTURE.md | Contract relationships + 8↔18 decimal conversion |
| docs/DEPLOYMENT.md | Step-by-step deploy runbook |
| docs/INTEGRATION.md | Code examples (ethers, wagmi) |
| docs/SECURITY_MODEL.md | Trust assumptions + threat model |
| docs/ADDRESSES.md | Deployed addresses (auto-gen) |
| docs/FAQ.md | Common questions |
| docs/STORAGE_LAYOUT.md | Storage slots per contract |
| docs/AUDIT.md | Audit status + findings (when available) |
Contributing
See CONTRIBUTING.md. PRs welcome — forge test + forge fmt --check + slither --fail-high must pass before merge.
Community
- GitHub Discussions — https://github.com/sentrix-labs/canonical-contracts/discussions for integration questions, contract design feedback, deployment help.
- Org profile — https://github.com/sentrix-labs
License
BUSL-1.1 (see LICENSE + NOTICE). Change Date: 2030-01-01 → MIT.
Multicall3.sol is a verbatim mirror of mds1/multicall (MIT) — license preserved in the file's SPDX header.
