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
Name | Description | Status | Documentation |
---|---|---|---|
abi | Application Binary Interface (ABI) for contracts | beta | |
abi_codegen | Kotlin code generation from ABIs | beta | |
abi_filter | Functions for filtering ABIs | beta | |
blockscout | BlockScout BlockExplorer helper functions | beta | |
bloomfilter | Space-efficient probabilistic data structure | beta | |
eip137 | Model and functions for ENS NameHash | beta | |
eip155 | TX signing with Simple replay attack protection | production | example code |
eip191 | Functions to sign data via signed data standard | beta | |
eip712 | Ethereum typed structured data hashing and signing | experimental | |
ens | ENS (Ethereum Name Service) functionality | beta | README |
erc1328 | WalletConnect Standard URI Format | beta | |
erc1450 | ERC-20 extension - e.g. including token minting | beta | example code |
erc181 | ENS reverse resolution of addresses | beta | |
erc20 | Contract wrapper for the ERC20 Token standard | beta | |
erc55 | Mixed-case checksum address encoding | production | README |
erc634 | Storage of text records in ENS | beta | README |
erc67 | Standard URI scheme for transactions | beta | |
erc681 | URL Format for Transaction Requests (successor of ERC67) | beta | |
erc831 | URI Format for Ethereum (used by 681, 961, ..) | beta | |
erc961 | URI standard for tokens | beta | |
etherscan | EtherScan BlockExplorer function | beta | |
example_cli | CLI App to demo KEthereum functionality | demonstration | example code |
extensions_kotlin | Extension functions for Kotlin types | beta | |
extensions_transactions | Extension functions for the Transaction class | beta | |
flows | Coroutine flows for blocks and transactions | beta | example code |
keccak_shortcut | Proxy extension function for keccak hashing | beta | |
keystore | Storage for wallet files (e.g. to use the geth keystore) | beta | |
metadata | Model and parser for contract metadata | beta | |
method_signatures | Functionality for method signatures (4byte repository,..) | beta | |
model | Data-/Inline-Classes and constants | beta | |
rlp | Recursive Length Prefix (RLP) encoder/decoder | beta | |
rpc | Remote Procedure Calls (RPC) abstraction | beta | |
rpc_min3 | Minimal INCUBED (IN3) RPC | experimental | README |
test_data | Data used in KEthereum tests | production | - |
types | Handling of EVM types (e.g. used code from abi_codegen ) | beta | |
uri_common | Used by several URI modules (681, 1328, 961, ..) | beta | |
wallet | functions for keys from and to JSON wallet files | beta |
Projects that use KEthereum
- WallETH
- FaucETH
- goerli pusher (pushes out TST tokens - good example on how to use KEthereum)
- Gnosis Safe Android App
- kmnid
- uport android signer
- KHardwareWallet
- multiple scripts in ethereum-lists
- mobidex
- add yours
Links
Get it
KEthereum is available via jitpack:
License
MIT