This reference tracks the checked-in c8ntinuum repository. The canonical ABI artifacts live beside the precompile implementations under precompiles/*/abi.json, with mirrored Solidity interfaces under contracts/solidity/precompiles.

Address catalog

ERC20 and WERC20 precompile addresses are created from registered token pairs and enabled by the ERC20 keeper; they are not part of the static address table.

Reference package and imports

contracts/package.json does not define main, files, exports, or types. Treat cosmos-evm-contracts as a local contracts package, not as a documented stable npm ABI package. Use static constants for fixed-address precompiles. For ERC20 and WERC20, use the registered token-pair address. For P256, use a raw low-level call because there is no Solidity ABI.
No generated TypeScript binding package is committed today. Hardhat users can generate TypeChain bindings in their own workspace; viem users can pass the ABI array directly.

Core ABI catalog

Bank

Events: none.

Bech32

Events: none.

Distribution

Events include ClaimRewards, DepositValidatorRewardsPool, FundCommunityPool, SetWithdrawerAddress, WithdrawDelegatorReward, and WithdrawValidatorCommission.

Governance

Events include CancelProposal, Deposit, SubmitProposal, Vote, and VoteWeighted.

ICS02 and ICS20

ICS20 emits IBCTransfer(indexed address sender,indexed string receiver,string sourcePort,string sourceChannel,string denom,uint256 amount,string memo).

Slashing

Event: ValidatorUnjailed(indexed address validator).

Staking

Events include CreateValidator, Delegate, EditValidator, Redelegate, Unbond, and CancelUnbondingDelegation.

Validator rewards

ERC20 and WERC20 extensions

ERC20 emits Approval and Transfer. WERC20 also emits Deposit and Withdrawal.

Reverts and errors

The checked ABI artifacts do not define custom Solidity error entries. ERC20 maps some SDK/bank errors to ERC20-style revert strings such as ERC20: transfer amount exceeds balance, ERC20: insufficient allowance, and ERC20: decreased allowance below zero.

Gas schedule

Variable-length stateless precompiles use:
Stateful Cosmos module precompiles use a minimum formula before SDK execution:
Actual SDK execution is also metered inside the precompile call.

Versioning rules

Use the repository tag as the compatibility boundary until a separate ABI package is formalized.