Home

Awesome

Mission statement

This is a Kotlin library for Ethereum. It is striving towards being 100% Kotlin (the code in the lib is Kotlin anyway - but also trying to not drag in JVM dependencies). This is done in order to enable multi-platform support in the future. Currently this library is mainly used in JVM projects but could this way also target e.g. JavaScript and WebAssembly that are broadly used in the web3 space. Another core principle of this library is to be as modular as possible. Ethereum has a wide range of use-cases and should not be supported by huge monolithic libraries. With KEthereum you can pick and choose the modules you need and keep the footprint of the library small this way.

Module overview

NameDescriptionStatusDocumentation
abiApplication Binary Interface (ABI) for contractsbeta
abi_codegenKotlin code generation from ABIsbeta
abi_filterFunctions for filtering ABIsbeta
blockscoutBlockScout BlockExplorer helper functionsbeta
bloomfilterSpace-efficient probabilistic data structurebeta
eip137Model and functions for ENS NameHashbeta
eip155TX signing with Simple replay attack protectionproductionexample code
eip191Functions to sign data via signed data standardbeta
eip712Ethereum typed structured data hashing and signingexperimental
ensENS (Ethereum Name Service) functionalitybetaREADME
erc1328WalletConnect Standard URI Formatbeta
erc1450ERC-20 extension - e.g. including token mintingbetaexample code
erc181ENS reverse resolution of addressesbeta
erc20Contract wrapper for the ERC20 Token standardbeta
erc55Mixed-case checksum address encodingproductionREADME
erc634Storage of text records in ENSbetaREADME
erc67Standard URI scheme for transactionsbeta
erc681URL Format for Transaction Requests (successor of ERC67)beta
erc831URI Format for Ethereum (used by 681, 961, ..)beta
erc961URI standard for tokensbeta
etherscanEtherScan BlockExplorer functionbeta
example_cliCLI App to demo KEthereum functionalitydemonstrationexample code
extensions_kotlinExtension functions for Kotlin typesbeta
extensions_transactionsExtension functions for the Transaction classbeta
flowsCoroutine flows for blocks and transactionsbetaexample code
keccak_shortcutProxy extension function for keccak hashingbeta
keystoreStorage for wallet files (e.g. to use the geth keystore)beta
metadataModel and parser for contract metadatabeta
method_signaturesFunctionality for method signatures (4byte repository,..)beta
modelData-/Inline-Classes and constantsbeta
rlpRecursive Length Prefix (RLP) encoder/decoderbeta
rpcRemote Procedure Calls (RPC) abstractionbeta
rpc_min3Minimal INCUBED (IN3) RPCexperimentalREADME
test_dataData used in KEthereum testsproduction-
typesHandling of EVM types (e.g. used code from abi_codegen )beta
uri_commonUsed by several URI modules (681, 1328, 961, ..)beta
walletfunctions for keys from and to JSON wallet filesbeta

Projects that use KEthereum

Links

Get it

KEthereum is available via jitpack:

License

MIT