A single, universal signing interface for any network. Birthed from the interchain ecosystem for builders. Create adapters for any web3 network.
InterchainJS is a versatile signing library designed to cater to a variety of blockchain networks through a flexible adapter pattern. This architecture enables seamless integration of new networks, account management modules, authentication protocols, and signing algorithms.
By employing this pattern, InterchainJS ensures compatibility and extensibility, allowing developers to easily plug in and configure components tailored to specific requirements. The graphic below illustrates how different signer types are connected to specific network classes, demonstrating the library's adaptability in handling diverse blockchain environments.
graph LR
signers --> cosmos_signer["Cosmos Network"]
signers --> injective_signer["Injective Network"]
signers --> ethereum_signer["Ethereum Network"]
signers --> implement_signer["ANY Network"]
cosmos_signer --> cosmos_amino["Amino Signer"]
cosmos_signer --> cosmos_direct["Direct Signer"]
ethereum_signer --> ethereum_eip712["EIP712 Signer"]
injective_signer --> injective_amino["Amino Signer"]
injective_signer --> injective_direct["Direct Signer"]
implement_signer --> any_signer["Any Signer"]
style signers fill:#f9f,stroke:#333,stroke-width:2px
graph LR
encoders[Encoders] --> auth["@interchainjs/auth"]
encoders --> utils["@interchainjs/utils"]
encoders --> cosmos_types["@interchainjs/cosmos-types"]
auth --> secp256k1_auth["Secp256k1 Auth"]
auth --> ethSecp256k1_auth["EthSecp256k1 Auth"]
utils --> signer_utils["Signer Utilities"]
utils --> crypto_utils["Crypto Utilities"]
style encoders fill:#f9f,stroke:#333,stroke-width:2px
style auth fill:#ccf,stroke:#333,stroke-width:2px
style utils fill:#ccf,stroke:#333,stroke-width:2px
Universally applied across different networks
We created a specific package to make it easy to migrate from @cosmjs
.
- @interchainjs/injective
@interchainjs/injective-msgs
(on progress)