Skip to content

Fill contracts, validator, quickstart pages; add troubleshooting and CODEOWNERS - #1

Merged
Evangel90 merged 3 commits into
mainfrom
fill-docs-pages
Sep 22, 2026
Merged

Evangel90 merged 3 commits into
mainfrom
fill-docs-pages

Conversation

@Evangel90

@Evangel90 Evangel90 commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

Fill contracts, validator, quickstart pages; add troubleshooting and CODEOWNERS

Every address, flag, default and error string is copied from its source (contracts/preinstalls/*.json, cosmos/evm v0.7.3, a real konstellationd init, the a9051f6 binary), never typed from memory. An independent review verified every fact against the code and reproduced each error string; its 11 findings (two pages had gone stale against the same-day D7/D16 decisions) are applied.

  • contracts.md: all 10 genesis preinstalls with addresses (selectors checked against the pinned bytecode), why the SenderCreators exist, the full precompile table incl. ICompliance at 0x…0900 with the interface verbatim; WKASH pinned at 0x34Ab8285C63b876717C2c56151700D02623559bE (CREATE2, same on every network, partial-match verification, compiled for Prague); the vesting section as built (KonstellationVestingWallet / RevocableVestingWallet / VestingSchedules / DeployVesting.s.sol, team 10 % liquid + 90 % cliff-then-linear, 50 M pool seed in genesis distribution state, 280 M in yearly tranche wallets, CREATE2 wallets funded at block 0, ERC-20 release disabled and why); timelocks stated per network.
  • run-a-validator.md: hardware, ports from a real init (JSON-RPC/REST/prometheus are off by default), init behaviour, the exact chain-id-mismatch errors, cosmovisor layout and the systemd unit with infra's real user/paths, §2.6/§2.7 callouts, Horcrux pointer, the chain's fork (Prague, Osaka off). "Become a validator" describes the real model: 10 foundation-run genesis validators via gentx on both networks, MsgCreateValidator disabled in x/circuit genesis state (with a note that genesis tooling does not write it yet — STATUS P12), and the operator's side of the D16 admission procedure (sentried full node, consensus pubkey, pre-signed create-validator, the ops-multisig window).
  • troubleshooting.md (new): EVM txs that fail at the SDK level are invisible to eth_* (with tx_search recipes), module-account refusal with the exact strings incl. the eth_estimateGas pre-flight, "address is frozen", the real circuit-breaker strings (circuit breaker disables …: unauthorized, disallows execution of message, cannot be disabled: the breaker must stay resettable), MsgCreateValidator listed as disabled by design, the PR #8 restart panic as an old-binary marker.
  • quickstart.md: MetaMask params for testnet-1 and local dev, first tx with cast.
  • CODEOWNERS from the org template.
  • npm run build green with onBrokenLinks: 'throw'. Testnet URLs, release SHA, genesis and hosting remain marked TBD.

🤖 Generated with Claude Code

…CODEOWNERS

Replace the stubs with content taken from merged work rather than waiting on
testnet-1. Everything not yet real (testnet-1 RPC URL, peers, genesis,
release version, WKASH and vesting addresses) stays a marked TBD.

- contracts.md: all 10 genesis preinstalls with addresses copied from
  contracts/preinstalls/*.json and cosmos/evm v0.7.3 DefaultPreinstalls
  (incl. EIP-2935 history storage from the pinned go-ethereum); why the
  SenderCreators must ship with the EntryPoints; precompile map with
  ICompliance at 0x...0900 (interface copied from
  x/compliance/precompile/ICompliance.sol), p256 at 0x...0100 and the werc20
  WKASH precompile; WKASH.sol as a post-genesis Create2 deploy (address TBD);
  D12 vesting design from TOKENOMICS §7 with no addresses claimed; a
  cast-based verification recipe checked against a pinned codeHash.
- run-a-validator.md: what `konstellationd init` actually writes (esp
  everywhere, evm-chain-id reconciled from genesis, mempool.type = "app"),
  the chain-id invariant with the exact refusal messages captured from the
  a9051f6 binary, ports as init writes them, cosmovisor layout and the
  infra systemd unit, never-build-on-a-validator / one-key-one-node, Horcrux,
  gentx parameters from networks/testnet-1/README.md, testnet-1 join table as
  placeholders linking to the networks repo.
- troubleshooting.md (new, in the sidebar): the EVM-tx-invisible-to-eth_*
  case with the tx_search query, the module-account transfer now refused at
  submission and the residual internal-call case, "address is frozen",
  circuit-breaker refusals and what tripping MsgTransfer / MsgEthereumTx
  means, and the fixed PR #8 restart panic as an old-binary marker.
- quickstart.md: MetaMask parameters for testnet-1 (56671 / KASH / 18, RPC
  TBD) and the local dev chain (56670, local_node.sh -y, :8545, dev0), first
  transaction with cast and the CLI.
- CODEOWNERS copied from .github/CODEOWNERS.template as networks did.

Hosting/domain is untouched: docusaurus.config.js `url` is still the
placeholder. `npm ci && npm run build` passes with onBrokenLinks: 'throw'.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Evangel90 and others added 2 commits September 21, 2026 04:52
…rings

Findings from the docs PR #1 review, all reproduced against ENGINEERING.md
§9.4/§11 (D7, D16, D17), TOKENOMICS.md §7 and STATUS.md §5a as of 2026-09-21:

- run-a-validator: "Become a validator" rewritten for the re-decided D7 and
  D16 — 10 foundation-run genesis validators on both networks,
  MsgCreateValidator disabled in x/circuit genesis state (design; genesis
  tooling not yet writing it, noted), admission through the ops-multisig
  reset/submit/disable window per infra/runbooks/validator-admission.md,
  with the operator's own steps (show-validator, pre-signed create-validator
  file). Gentx bullet dropped for outside readers. Caution and testnet-1
  join text no longer say "in-house five / 3-5 external". systemd unit uses
  infra's real user/home (konstellation, /home/konstellation/.konstellationd).
  mempool.type refusal attributed to cosmos/evm's server-config validation,
  not CometBFT. Prague fork / Osaka-not-enabled (D17) noted.
- contracts: WKASH pinned at 0x34Ab8285C63b876717C2c56151700D02623559bE
  (Create2Deployer, salt keccak256("konstellation-network/contracts:WKASH:v1"),
  partial Blockscout match, compiled for prague). Vesting section reflects
  the built contracts (KonstellationVestingWallet, RevocableVestingWallet,
  VestingSchedules, DeployVesting.s.sol), CREATE2 wallets funded at block 0,
  team 10 % liquid + 90 % (start TGE+1y, cliff 0, duration 3y) revocable,
  community 50 M pool seed in distribution state + 280 M in 30/25/20/15/10 %
  yearly tranche wallets, ERC-20 release(token) disabled on purpose.
- troubleshooting: "tx type not allowed" removed (this chain never emits it);
  real strings carry the ": unauthorized" suffix; eth_estimateGas's
  "execution reverted: failed to set account: …" added; protected-type
  refusal shown; MsgCreateValidator listed as disabled-by-design;
  `query compliance entries block|allow`; timelock stated as 24 h on
  mainnet / per-network genesis parameter.

npm run build: green, no broken links or anchors.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… admission tx, trust roots

Every item reproduced or checked against source before the wording changed
(dev chain at f069ddb, cosmos/evm v0.7.3, infra templates and runbooks).

- Freeze semantics (C1): reproduced on the dev chain — a frozen EOA's
  pre-freeze werc20 allowance still lets transferFrom(frozen, spender)
  succeed and transfer(to = frozen) succeeds, while its own sends and direct
  value/bank transfers to it are refused. contracts.md and troubleshooting.md
  now say a freeze stops signing and being the direct `to`, does not
  immobilise the balance, contracts must call isFrozen themselves, and a
  bank-level restriction is planned before mainnet. "Chain-wide … native
  KASH included" wording removed everywhere.
- Keys (H1): init writes config/priv_validator_key.json; page now says to
  shard it offline, shred -u it on every host, set priv_validator_laddr,
  never restore config/ onto a second host, never restore or hand-edit
  priv_validator_state.json; notes that the start command regenerates a
  throwaway key file (LoadOrGenFilePV is unconditional).
- Admission tx (H2): --gas 300000 --gas-prices 10000000000esp and
  --timeout-height on both generate-only and sign; explains the empty-fee,
  expiry and sequence failure modes; "send nothing from the operator
  account between signing and the window".
- Genesis trust (M1): fetch by tag/commit SHA, compare the hash against the
  separately published value, .sha256 is consistency not authenticity.
- Attestation (M2): --repo + --signer-workflow instead of --owner, at
  install and at upgrade staging (L2).
- systemd unit (M3): UNSAFE_SKIP_BACKUP=true with the reason,
  RequiresMountsFor/ConditionPathIsMountPoint guard; Upgrades gained the
  rollback rules (own H-1 snapshot, keep current priv_validator_state.json,
  --unsafe-skip-upgrades for a failed handler, never a data restore).
- eth_estimateGas mapping (M4): reproduced — module-account recipient
  estimates 21000 and is refused at send; precompile recipient fails
  estimation with "execution reverted: failed to set account …".
- Provisional (M5): WKASH pin, Prague/metadata-free build and vesting marked
  as on unmerged contracts PR #2; quickstart no longer says "final".
- cosmovisor (M6): pinned v1.7.0 tarball URL, sha256 from the release's
  SHA256SUMS, extract only the binary.
- L1 dedicated `konstellation` user for every step; L3 timelock "24 h
  default, governance-changeable, min 1 min, testnet-1 per genesis"; L4 P12
  caveat on MsgCreateValidator; L5 release pipeline under review; L6 every
  ENGINEERING/TOKENOMICS/STATUS/infra citation replaced by the fact inline
  (rpc-endpoints.md too); L8 the post-genesis DeployVesting step, who runs
  it and when.

npm run build: green, no broken links or anchors.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Evangel90
Evangel90 merged commit b3b63bc into main Sep 22, 2026
1 check passed
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.

1 participant