JSPM

  • Created
  • Published
  • Downloads 2784
  • Score
    100M100P100Q136639F
  • License MIT

InterchainJS is a JavaScript library for interacting with Cosmos SDK based blockchains.

Package Exports

  • interchainjs
  • interchainjs/amino/amino
  • interchainjs/binary
  • interchainjs/cosmos/app/runtime/v1alpha1/module
  • interchainjs/cosmos/app/v1alpha1/config
  • interchainjs/cosmos/app/v1alpha1/module
  • interchainjs/cosmos/app/v1alpha1/query
  • interchainjs/cosmos/app/v1alpha1/query.rpc.func
  • interchainjs/cosmos/auth/module/v1/module
  • interchainjs/cosmos/auth/v1beta1/auth
  • interchainjs/cosmos/auth/v1beta1/genesis
  • interchainjs/cosmos/auth/v1beta1/query
  • interchainjs/cosmos/auth/v1beta1/query.rpc.func
  • interchainjs/cosmos/auth/v1beta1/tx
  • interchainjs/cosmos/auth/v1beta1/tx.registry
  • interchainjs/cosmos/auth/v1beta1/tx.rpc.func
  • interchainjs/cosmos/authz/module/v1/module
  • interchainjs/cosmos/authz/v1beta1/authz
  • interchainjs/cosmos/authz/v1beta1/event
  • interchainjs/cosmos/authz/v1beta1/genesis
  • interchainjs/cosmos/authz/v1beta1/query
  • interchainjs/cosmos/authz/v1beta1/query.rpc.func
  • interchainjs/cosmos/authz/v1beta1/tx
  • interchainjs/cosmos/authz/v1beta1/tx.registry
  • interchainjs/cosmos/authz/v1beta1/tx.rpc.func
  • interchainjs/cosmos/autocli/v1/options
  • interchainjs/cosmos/autocli/v1/query
  • interchainjs/cosmos/autocli/v1/query.rpc.func
  • interchainjs/cosmos/bank/module/v1/module
  • interchainjs/cosmos/bank/v1beta1/authz
  • interchainjs/cosmos/bank/v1beta1/bank
  • interchainjs/cosmos/bank/v1beta1/genesis
  • interchainjs/cosmos/bank/v1beta1/query
  • interchainjs/cosmos/bank/v1beta1/query.rpc.func
  • interchainjs/cosmos/bank/v1beta1/tx
  • interchainjs/cosmos/bank/v1beta1/tx.registry
  • interchainjs/cosmos/bank/v1beta1/tx.rpc.func
  • interchainjs/cosmos/base/abci/v1beta1/abci
  • interchainjs/cosmos/base/node/v1beta1/query
  • interchainjs/cosmos/base/node/v1beta1/query.rpc.func
  • interchainjs/cosmos/base/query/v1beta1/pagination
  • interchainjs/cosmos/base/reflection/v1beta1/reflection
  • interchainjs/cosmos/base/reflection/v1beta1/reflection.rpc.func
  • interchainjs/cosmos/base/reflection/v2alpha1/reflection
  • interchainjs/cosmos/base/reflection/v2alpha1/reflection.rpc.func
  • interchainjs/cosmos/base/tendermint/v1beta1/query
  • interchainjs/cosmos/base/tendermint/v1beta1/query.rpc.func
  • interchainjs/cosmos/base/tendermint/v1beta1/types
  • interchainjs/cosmos/base/v1beta1/coin
  • interchainjs/cosmos/benchmark/module/v1/module
  • interchainjs/cosmos/benchmark/v1/benchmark
  • interchainjs/cosmos/benchmark/v1/tx
  • interchainjs/cosmos/benchmark/v1/tx.registry
  • interchainjs/cosmos/benchmark/v1/tx.rpc.func
  • interchainjs/cosmos/bundle
  • interchainjs/cosmos/circuit/module/v1/module
  • interchainjs/cosmos/circuit/v1/query
  • interchainjs/cosmos/circuit/v1/query.rpc.func
  • interchainjs/cosmos/circuit/v1/tx
  • interchainjs/cosmos/circuit/v1/tx.registry
  • interchainjs/cosmos/circuit/v1/tx.rpc.func
  • interchainjs/cosmos/circuit/v1/types
  • interchainjs/cosmos/consensus/module/v1/module
  • interchainjs/cosmos/consensus/v1/query
  • interchainjs/cosmos/consensus/v1/query.rpc.func
  • interchainjs/cosmos/consensus/v1/tx
  • interchainjs/cosmos/consensus/v1/tx.registry
  • interchainjs/cosmos/consensus/v1/tx.rpc.func
  • interchainjs/cosmos/counter/module/v1/module
  • interchainjs/cosmos/counter/v1/query
  • interchainjs/cosmos/counter/v1/query.rpc.func
  • interchainjs/cosmos/counter/v1/tx
  • interchainjs/cosmos/counter/v1/tx.registry
  • interchainjs/cosmos/counter/v1/tx.rpc.func
  • interchainjs/cosmos/crisis/module/v1/module
  • interchainjs/cosmos/crisis/v1beta1/genesis
  • interchainjs/cosmos/crisis/v1beta1/tx
  • interchainjs/cosmos/crisis/v1beta1/tx.registry
  • interchainjs/cosmos/crisis/v1beta1/tx.rpc.func
  • interchainjs/cosmos/crypto/ed25519/keys
  • interchainjs/cosmos/crypto/hd/v1/hd
  • interchainjs/cosmos/crypto/keyring/v1/record
  • interchainjs/cosmos/crypto/multisig/keys
  • interchainjs/cosmos/crypto/multisig/v1beta1/multisig
  • interchainjs/cosmos/crypto/secp256k1/keys
  • interchainjs/cosmos/crypto/secp256r1/keys
  • interchainjs/cosmos/distribution/module/v1/module
  • interchainjs/cosmos/distribution/v1beta1/distribution
  • interchainjs/cosmos/distribution/v1beta1/genesis
  • interchainjs/cosmos/distribution/v1beta1/query
  • interchainjs/cosmos/distribution/v1beta1/query.rpc.func
  • interchainjs/cosmos/distribution/v1beta1/tx
  • interchainjs/cosmos/distribution/v1beta1/tx.registry
  • interchainjs/cosmos/distribution/v1beta1/tx.rpc.func
  • interchainjs/cosmos/epochs/module/v1/module
  • interchainjs/cosmos/epochs/v1beta1/events
  • interchainjs/cosmos/epochs/v1beta1/genesis
  • interchainjs/cosmos/epochs/v1beta1/query
  • interchainjs/cosmos/epochs/v1beta1/query.rpc.func
  • interchainjs/cosmos/evidence/module/v1/module
  • interchainjs/cosmos/evidence/v1beta1/evidence
  • interchainjs/cosmos/evidence/v1beta1/genesis
  • interchainjs/cosmos/evidence/v1beta1/query
  • interchainjs/cosmos/evidence/v1beta1/query.rpc.func
  • interchainjs/cosmos/evidence/v1beta1/tx
  • interchainjs/cosmos/evidence/v1beta1/tx.registry
  • interchainjs/cosmos/evidence/v1beta1/tx.rpc.func
  • interchainjs/cosmos/feegrant/module/v1/module
  • interchainjs/cosmos/feegrant/v1beta1/feegrant
  • interchainjs/cosmos/feegrant/v1beta1/genesis
  • interchainjs/cosmos/feegrant/v1beta1/query
  • interchainjs/cosmos/feegrant/v1beta1/query.rpc.func
  • interchainjs/cosmos/feegrant/v1beta1/tx
  • interchainjs/cosmos/feegrant/v1beta1/tx.registry
  • interchainjs/cosmos/feegrant/v1beta1/tx.rpc.func
  • interchainjs/cosmos/genutil/module/v1/module
  • interchainjs/cosmos/genutil/v1beta1/genesis
  • interchainjs/cosmos/gov/module/v1/module
  • interchainjs/cosmos/gov/v1/genesis
  • interchainjs/cosmos/gov/v1/gov
  • interchainjs/cosmos/gov/v1/query
  • interchainjs/cosmos/gov/v1/query.rpc.func
  • interchainjs/cosmos/gov/v1/tx
  • interchainjs/cosmos/gov/v1/tx.registry
  • interchainjs/cosmos/gov/v1/tx.rpc.func
  • interchainjs/cosmos/gov/v1beta1/genesis
  • interchainjs/cosmos/gov/v1beta1/gov
  • interchainjs/cosmos/gov/v1beta1/query
  • interchainjs/cosmos/gov/v1beta1/query.rpc.func
  • interchainjs/cosmos/gov/v1beta1/tx
  • interchainjs/cosmos/gov/v1beta1/tx.registry
  • interchainjs/cosmos/gov/v1beta1/tx.rpc.func
  • interchainjs/cosmos/group/module/v1/module
  • interchainjs/cosmos/group/v1/events
  • interchainjs/cosmos/group/v1/genesis
  • interchainjs/cosmos/group/v1/query
  • interchainjs/cosmos/group/v1/query.rpc.func
  • interchainjs/cosmos/group/v1/tx
  • interchainjs/cosmos/group/v1/tx.registry
  • interchainjs/cosmos/group/v1/tx.rpc.func
  • interchainjs/cosmos/group/v1/types
  • interchainjs/cosmos/ics23/v1/proofs
  • interchainjs/cosmos/mint/module/v1/module
  • interchainjs/cosmos/mint/v1beta1/genesis
  • interchainjs/cosmos/mint/v1beta1/mint
  • interchainjs/cosmos/mint/v1beta1/query
  • interchainjs/cosmos/mint/v1beta1/query.rpc.func
  • interchainjs/cosmos/mint/v1beta1/tx
  • interchainjs/cosmos/mint/v1beta1/tx.registry
  • interchainjs/cosmos/mint/v1beta1/tx.rpc.func
  • interchainjs/cosmos/msg/textual/v1/textual
  • interchainjs/cosmos/msg/v1/msg
  • interchainjs/cosmos/nft/module/v1/module
  • interchainjs/cosmos/nft/v1beta1/event
  • interchainjs/cosmos/nft/v1beta1/genesis
  • interchainjs/cosmos/nft/v1beta1/nft
  • interchainjs/cosmos/nft/v1beta1/query
  • interchainjs/cosmos/nft/v1beta1/query.rpc.func
  • interchainjs/cosmos/nft/v1beta1/tx
  • interchainjs/cosmos/nft/v1beta1/tx.registry
  • interchainjs/cosmos/nft/v1beta1/tx.rpc.func
  • interchainjs/cosmos/params/module/v1/module
  • interchainjs/cosmos/params/v1beta1/params
  • interchainjs/cosmos/params/v1beta1/query
  • interchainjs/cosmos/params/v1beta1/query.rpc.func
  • interchainjs/cosmos/protocolpool/module/v1/module
  • interchainjs/cosmos/protocolpool/v1/genesis
  • interchainjs/cosmos/protocolpool/v1/query
  • interchainjs/cosmos/protocolpool/v1/query.rpc.func
  • interchainjs/cosmos/protocolpool/v1/tx
  • interchainjs/cosmos/protocolpool/v1/tx.registry
  • interchainjs/cosmos/protocolpool/v1/tx.rpc.func
  • interchainjs/cosmos/protocolpool/v1/types
  • interchainjs/cosmos/query/v1/query
  • interchainjs/cosmos/reflection/v1/reflection
  • interchainjs/cosmos/reflection/v1/reflection.rpc.func
  • interchainjs/cosmos/slashing/module/v1/module
  • interchainjs/cosmos/slashing/v1beta1/genesis
  • interchainjs/cosmos/slashing/v1beta1/query
  • interchainjs/cosmos/slashing/v1beta1/query.rpc.func
  • interchainjs/cosmos/slashing/v1beta1/slashing
  • interchainjs/cosmos/slashing/v1beta1/tx
  • interchainjs/cosmos/slashing/v1beta1/tx.registry
  • interchainjs/cosmos/slashing/v1beta1/tx.rpc.func
  • interchainjs/cosmos/staking/module/v1/module
  • interchainjs/cosmos/staking/v1beta1/authz
  • interchainjs/cosmos/staking/v1beta1/genesis
  • interchainjs/cosmos/staking/v1beta1/query
  • interchainjs/cosmos/staking/v1beta1/query.rpc.func
  • interchainjs/cosmos/staking/v1beta1/staking
  • interchainjs/cosmos/staking/v1beta1/tx
  • interchainjs/cosmos/staking/v1beta1/tx.registry
  • interchainjs/cosmos/staking/v1beta1/tx.rpc.func
  • interchainjs/cosmos/store/internal/kv/v1beta1/kv
  • interchainjs/cosmos/store/snapshots/v1/snapshot
  • interchainjs/cosmos/store/streaming/abci/grpc
  • interchainjs/cosmos/store/v1beta1/commit_info
  • interchainjs/cosmos/store/v1beta1/listening
  • interchainjs/cosmos/tx/config/v1/config
  • interchainjs/cosmos/tx/signing/v1beta1/signing
  • interchainjs/cosmos/tx/v1beta1/service
  • interchainjs/cosmos/tx/v1beta1/service.rpc.func
  • interchainjs/cosmos/tx/v1beta1/tx
  • interchainjs/cosmos/upgrade/module/v1/module
  • interchainjs/cosmos/upgrade/v1beta1/query
  • interchainjs/cosmos/upgrade/v1beta1/query.rpc.func
  • interchainjs/cosmos/upgrade/v1beta1/tx
  • interchainjs/cosmos/upgrade/v1beta1/tx.registry
  • interchainjs/cosmos/upgrade/v1beta1/tx.rpc.func
  • interchainjs/cosmos/upgrade/v1beta1/upgrade
  • interchainjs/cosmos/vesting/module/v1/module
  • interchainjs/cosmos/vesting/v1beta1/tx
  • interchainjs/cosmos/vesting/v1beta1/tx.registry
  • interchainjs/cosmos/vesting/v1beta1/tx.rpc.func
  • interchainjs/cosmos/vesting/v1beta1/vesting
  • interchainjs/cosmos_proto/bundle
  • interchainjs/cosmos_proto/cosmos
  • interchainjs/cosmwasm/bundle
  • interchainjs/cosmwasm/wasm/v1/authz
  • interchainjs/cosmwasm/wasm/v1/genesis
  • interchainjs/cosmwasm/wasm/v1/ibc
  • interchainjs/cosmwasm/wasm/v1/proposal_legacy
  • interchainjs/cosmwasm/wasm/v1/query
  • interchainjs/cosmwasm/wasm/v1/query.rpc.func
  • interchainjs/cosmwasm/wasm/v1/tx
  • interchainjs/cosmwasm/wasm/v1/tx.registry
  • interchainjs/cosmwasm/wasm/v1/tx.rpc.func
  • interchainjs/cosmwasm/wasm/v1/types
  • interchainjs/esm/amino/amino
  • interchainjs/esm/binary
  • interchainjs/esm/cosmos/app/runtime/v1alpha1/module
  • interchainjs/esm/cosmos/app/v1alpha1/config
  • interchainjs/esm/cosmos/app/v1alpha1/module
  • interchainjs/esm/cosmos/app/v1alpha1/query
  • interchainjs/esm/cosmos/app/v1alpha1/query.rpc.func
  • interchainjs/esm/cosmos/auth/module/v1/module
  • interchainjs/esm/cosmos/auth/v1beta1/auth
  • interchainjs/esm/cosmos/auth/v1beta1/genesis
  • interchainjs/esm/cosmos/auth/v1beta1/query
  • interchainjs/esm/cosmos/auth/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/auth/v1beta1/tx
  • interchainjs/esm/cosmos/auth/v1beta1/tx.registry
  • interchainjs/esm/cosmos/auth/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/authz/module/v1/module
  • interchainjs/esm/cosmos/authz/v1beta1/authz
  • interchainjs/esm/cosmos/authz/v1beta1/event
  • interchainjs/esm/cosmos/authz/v1beta1/genesis
  • interchainjs/esm/cosmos/authz/v1beta1/query
  • interchainjs/esm/cosmos/authz/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/authz/v1beta1/tx
  • interchainjs/esm/cosmos/authz/v1beta1/tx.registry
  • interchainjs/esm/cosmos/authz/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/autocli/v1/options
  • interchainjs/esm/cosmos/autocli/v1/query
  • interchainjs/esm/cosmos/autocli/v1/query.rpc.func
  • interchainjs/esm/cosmos/bank/module/v1/module
  • interchainjs/esm/cosmos/bank/v1beta1/authz
  • interchainjs/esm/cosmos/bank/v1beta1/bank
  • interchainjs/esm/cosmos/bank/v1beta1/genesis
  • interchainjs/esm/cosmos/bank/v1beta1/query
  • interchainjs/esm/cosmos/bank/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/bank/v1beta1/tx
  • interchainjs/esm/cosmos/bank/v1beta1/tx.registry
  • interchainjs/esm/cosmos/bank/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/base/abci/v1beta1/abci
  • interchainjs/esm/cosmos/base/node/v1beta1/query
  • interchainjs/esm/cosmos/base/node/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/base/query/v1beta1/pagination
  • interchainjs/esm/cosmos/base/reflection/v1beta1/reflection
  • interchainjs/esm/cosmos/base/reflection/v1beta1/reflection.rpc.func
  • interchainjs/esm/cosmos/base/reflection/v2alpha1/reflection
  • interchainjs/esm/cosmos/base/reflection/v2alpha1/reflection.rpc.func
  • interchainjs/esm/cosmos/base/tendermint/v1beta1/query
  • interchainjs/esm/cosmos/base/tendermint/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/base/tendermint/v1beta1/types
  • interchainjs/esm/cosmos/base/v1beta1/coin
  • interchainjs/esm/cosmos/benchmark/module/v1/module
  • interchainjs/esm/cosmos/benchmark/v1/benchmark
  • interchainjs/esm/cosmos/benchmark/v1/tx
  • interchainjs/esm/cosmos/benchmark/v1/tx.registry
  • interchainjs/esm/cosmos/benchmark/v1/tx.rpc.func
  • interchainjs/esm/cosmos/bundle
  • interchainjs/esm/cosmos/circuit/module/v1/module
  • interchainjs/esm/cosmos/circuit/v1/query
  • interchainjs/esm/cosmos/circuit/v1/query.rpc.func
  • interchainjs/esm/cosmos/circuit/v1/tx
  • interchainjs/esm/cosmos/circuit/v1/tx.registry
  • interchainjs/esm/cosmos/circuit/v1/tx.rpc.func
  • interchainjs/esm/cosmos/circuit/v1/types
  • interchainjs/esm/cosmos/consensus/module/v1/module
  • interchainjs/esm/cosmos/consensus/v1/query
  • interchainjs/esm/cosmos/consensus/v1/query.rpc.func
  • interchainjs/esm/cosmos/consensus/v1/tx
  • interchainjs/esm/cosmos/consensus/v1/tx.registry
  • interchainjs/esm/cosmos/consensus/v1/tx.rpc.func
  • interchainjs/esm/cosmos/counter/module/v1/module
  • interchainjs/esm/cosmos/counter/v1/query
  • interchainjs/esm/cosmos/counter/v1/query.rpc.func
  • interchainjs/esm/cosmos/counter/v1/tx
  • interchainjs/esm/cosmos/counter/v1/tx.registry
  • interchainjs/esm/cosmos/counter/v1/tx.rpc.func
  • interchainjs/esm/cosmos/crisis/module/v1/module
  • interchainjs/esm/cosmos/crisis/v1beta1/genesis
  • interchainjs/esm/cosmos/crisis/v1beta1/tx
  • interchainjs/esm/cosmos/crisis/v1beta1/tx.registry
  • interchainjs/esm/cosmos/crisis/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/crypto/ed25519/keys
  • interchainjs/esm/cosmos/crypto/hd/v1/hd
  • interchainjs/esm/cosmos/crypto/keyring/v1/record
  • interchainjs/esm/cosmos/crypto/multisig/keys
  • interchainjs/esm/cosmos/crypto/multisig/v1beta1/multisig
  • interchainjs/esm/cosmos/crypto/secp256k1/keys
  • interchainjs/esm/cosmos/crypto/secp256r1/keys
  • interchainjs/esm/cosmos/distribution/module/v1/module
  • interchainjs/esm/cosmos/distribution/v1beta1/distribution
  • interchainjs/esm/cosmos/distribution/v1beta1/genesis
  • interchainjs/esm/cosmos/distribution/v1beta1/query
  • interchainjs/esm/cosmos/distribution/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/distribution/v1beta1/tx
  • interchainjs/esm/cosmos/distribution/v1beta1/tx.registry
  • interchainjs/esm/cosmos/distribution/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/epochs/module/v1/module
  • interchainjs/esm/cosmos/epochs/v1beta1/events
  • interchainjs/esm/cosmos/epochs/v1beta1/genesis
  • interchainjs/esm/cosmos/epochs/v1beta1/query
  • interchainjs/esm/cosmos/epochs/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/evidence/module/v1/module
  • interchainjs/esm/cosmos/evidence/v1beta1/evidence
  • interchainjs/esm/cosmos/evidence/v1beta1/genesis
  • interchainjs/esm/cosmos/evidence/v1beta1/query
  • interchainjs/esm/cosmos/evidence/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/evidence/v1beta1/tx
  • interchainjs/esm/cosmos/evidence/v1beta1/tx.registry
  • interchainjs/esm/cosmos/evidence/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/feegrant/module/v1/module
  • interchainjs/esm/cosmos/feegrant/v1beta1/feegrant
  • interchainjs/esm/cosmos/feegrant/v1beta1/genesis
  • interchainjs/esm/cosmos/feegrant/v1beta1/query
  • interchainjs/esm/cosmos/feegrant/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/feegrant/v1beta1/tx
  • interchainjs/esm/cosmos/feegrant/v1beta1/tx.registry
  • interchainjs/esm/cosmos/feegrant/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/genutil/module/v1/module
  • interchainjs/esm/cosmos/genutil/v1beta1/genesis
  • interchainjs/esm/cosmos/gov/module/v1/module
  • interchainjs/esm/cosmos/gov/v1/genesis
  • interchainjs/esm/cosmos/gov/v1/gov
  • interchainjs/esm/cosmos/gov/v1/query
  • interchainjs/esm/cosmos/gov/v1/query.rpc.func
  • interchainjs/esm/cosmos/gov/v1/tx
  • interchainjs/esm/cosmos/gov/v1/tx.registry
  • interchainjs/esm/cosmos/gov/v1/tx.rpc.func
  • interchainjs/esm/cosmos/gov/v1beta1/genesis
  • interchainjs/esm/cosmos/gov/v1beta1/gov
  • interchainjs/esm/cosmos/gov/v1beta1/query
  • interchainjs/esm/cosmos/gov/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/gov/v1beta1/tx
  • interchainjs/esm/cosmos/gov/v1beta1/tx.registry
  • interchainjs/esm/cosmos/gov/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/group/module/v1/module
  • interchainjs/esm/cosmos/group/v1/events
  • interchainjs/esm/cosmos/group/v1/genesis
  • interchainjs/esm/cosmos/group/v1/query
  • interchainjs/esm/cosmos/group/v1/query.rpc.func
  • interchainjs/esm/cosmos/group/v1/tx
  • interchainjs/esm/cosmos/group/v1/tx.registry
  • interchainjs/esm/cosmos/group/v1/tx.rpc.func
  • interchainjs/esm/cosmos/group/v1/types
  • interchainjs/esm/cosmos/ics23/v1/proofs
  • interchainjs/esm/cosmos/mint/module/v1/module
  • interchainjs/esm/cosmos/mint/v1beta1/genesis
  • interchainjs/esm/cosmos/mint/v1beta1/mint
  • interchainjs/esm/cosmos/mint/v1beta1/query
  • interchainjs/esm/cosmos/mint/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/mint/v1beta1/tx
  • interchainjs/esm/cosmos/mint/v1beta1/tx.registry
  • interchainjs/esm/cosmos/mint/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/msg/textual/v1/textual
  • interchainjs/esm/cosmos/msg/v1/msg
  • interchainjs/esm/cosmos/nft/module/v1/module
  • interchainjs/esm/cosmos/nft/v1beta1/event
  • interchainjs/esm/cosmos/nft/v1beta1/genesis
  • interchainjs/esm/cosmos/nft/v1beta1/nft
  • interchainjs/esm/cosmos/nft/v1beta1/query
  • interchainjs/esm/cosmos/nft/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/nft/v1beta1/tx
  • interchainjs/esm/cosmos/nft/v1beta1/tx.registry
  • interchainjs/esm/cosmos/nft/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/params/module/v1/module
  • interchainjs/esm/cosmos/params/v1beta1/params
  • interchainjs/esm/cosmos/params/v1beta1/query
  • interchainjs/esm/cosmos/params/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/protocolpool/module/v1/module
  • interchainjs/esm/cosmos/protocolpool/v1/genesis
  • interchainjs/esm/cosmos/protocolpool/v1/query
  • interchainjs/esm/cosmos/protocolpool/v1/query.rpc.func
  • interchainjs/esm/cosmos/protocolpool/v1/tx
  • interchainjs/esm/cosmos/protocolpool/v1/tx.registry
  • interchainjs/esm/cosmos/protocolpool/v1/tx.rpc.func
  • interchainjs/esm/cosmos/protocolpool/v1/types
  • interchainjs/esm/cosmos/query/v1/query
  • interchainjs/esm/cosmos/reflection/v1/reflection
  • interchainjs/esm/cosmos/reflection/v1/reflection.rpc.func
  • interchainjs/esm/cosmos/slashing/module/v1/module
  • interchainjs/esm/cosmos/slashing/v1beta1/genesis
  • interchainjs/esm/cosmos/slashing/v1beta1/query
  • interchainjs/esm/cosmos/slashing/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/slashing/v1beta1/slashing
  • interchainjs/esm/cosmos/slashing/v1beta1/tx
  • interchainjs/esm/cosmos/slashing/v1beta1/tx.registry
  • interchainjs/esm/cosmos/slashing/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/staking/module/v1/module
  • interchainjs/esm/cosmos/staking/v1beta1/authz
  • interchainjs/esm/cosmos/staking/v1beta1/genesis
  • interchainjs/esm/cosmos/staking/v1beta1/query
  • interchainjs/esm/cosmos/staking/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/staking/v1beta1/staking
  • interchainjs/esm/cosmos/staking/v1beta1/tx
  • interchainjs/esm/cosmos/staking/v1beta1/tx.registry
  • interchainjs/esm/cosmos/staking/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/store/internal/kv/v1beta1/kv
  • interchainjs/esm/cosmos/store/snapshots/v1/snapshot
  • interchainjs/esm/cosmos/store/streaming/abci/grpc
  • interchainjs/esm/cosmos/store/v1beta1/commit_info
  • interchainjs/esm/cosmos/store/v1beta1/listening
  • interchainjs/esm/cosmos/tx/config/v1/config
  • interchainjs/esm/cosmos/tx/signing/v1beta1/signing
  • interchainjs/esm/cosmos/tx/v1beta1/service
  • interchainjs/esm/cosmos/tx/v1beta1/service.rpc.func
  • interchainjs/esm/cosmos/tx/v1beta1/tx
  • interchainjs/esm/cosmos/upgrade/module/v1/module
  • interchainjs/esm/cosmos/upgrade/v1beta1/query
  • interchainjs/esm/cosmos/upgrade/v1beta1/query.rpc.func
  • interchainjs/esm/cosmos/upgrade/v1beta1/tx
  • interchainjs/esm/cosmos/upgrade/v1beta1/tx.registry
  • interchainjs/esm/cosmos/upgrade/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/upgrade/v1beta1/upgrade
  • interchainjs/esm/cosmos/vesting/module/v1/module
  • interchainjs/esm/cosmos/vesting/v1beta1/tx
  • interchainjs/esm/cosmos/vesting/v1beta1/tx.registry
  • interchainjs/esm/cosmos/vesting/v1beta1/tx.rpc.func
  • interchainjs/esm/cosmos/vesting/v1beta1/vesting
  • interchainjs/esm/cosmos_proto/bundle
  • interchainjs/esm/cosmos_proto/cosmos
  • interchainjs/esm/cosmwasm/bundle
  • interchainjs/esm/cosmwasm/wasm/v1/authz
  • interchainjs/esm/cosmwasm/wasm/v1/genesis
  • interchainjs/esm/cosmwasm/wasm/v1/ibc
  • interchainjs/esm/cosmwasm/wasm/v1/proposal_legacy
  • interchainjs/esm/cosmwasm/wasm/v1/query
  • interchainjs/esm/cosmwasm/wasm/v1/query.rpc.func
  • interchainjs/esm/cosmwasm/wasm/v1/tx
  • interchainjs/esm/cosmwasm/wasm/v1/tx.registry
  • interchainjs/esm/cosmwasm/wasm/v1/tx.rpc.func
  • interchainjs/esm/cosmwasm/wasm/v1/types
  • interchainjs/esm/extern
  • interchainjs/esm/gogoproto/gogo
  • interchainjs/esm/google/api/annotations
  • interchainjs/esm/google/api/http
  • interchainjs/esm/google/bundle
  • interchainjs/esm/google/protobuf/any
  • interchainjs/esm/google/protobuf/descriptor
  • interchainjs/esm/google/protobuf/duration
  • interchainjs/esm/google/protobuf/timestamp
  • interchainjs/esm/helper-func-types
  • interchainjs/esm/helpers
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/controller
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/query
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/query.rpc.func
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/tx
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/tx.registry
  • interchainjs/esm/ibc/applications/interchain_accounts/controller/v1/tx.rpc.func
  • interchainjs/esm/ibc/applications/interchain_accounts/genesis/v1/genesis
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/host
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/query
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/query.rpc.func
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/tx
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/tx.registry
  • interchainjs/esm/ibc/applications/interchain_accounts/host/v1/tx.rpc.func
  • interchainjs/esm/ibc/applications/interchain_accounts/v1/account
  • interchainjs/esm/ibc/applications/interchain_accounts/v1/metadata
  • interchainjs/esm/ibc/applications/interchain_accounts/v1/packet
  • interchainjs/esm/ibc/applications/packet_forward_middleware/v1/genesis
  • interchainjs/esm/ibc/applications/transfer/v1/authz
  • interchainjs/esm/ibc/applications/transfer/v1/denomtrace
  • interchainjs/esm/ibc/applications/transfer/v1/genesis
  • interchainjs/esm/ibc/applications/transfer/v1/packet
  • interchainjs/esm/ibc/applications/transfer/v1/query
  • interchainjs/esm/ibc/applications/transfer/v1/query.rpc.func
  • interchainjs/esm/ibc/applications/transfer/v1/token
  • interchainjs/esm/ibc/applications/transfer/v1/transfer
  • interchainjs/esm/ibc/applications/transfer/v1/tx
  • interchainjs/esm/ibc/applications/transfer/v1/tx.registry
  • interchainjs/esm/ibc/applications/transfer/v1/tx.rpc.func
  • interchainjs/esm/ibc/bundle
  • interchainjs/esm/ibc/core/channel/v1/channel
  • interchainjs/esm/ibc/core/channel/v1/genesis
  • interchainjs/esm/ibc/core/channel/v1/query
  • interchainjs/esm/ibc/core/channel/v1/query.rpc.func
  • interchainjs/esm/ibc/core/channel/v1/tx
  • interchainjs/esm/ibc/core/channel/v1/tx.registry
  • interchainjs/esm/ibc/core/channel/v1/tx.rpc.func
  • interchainjs/esm/ibc/core/channel/v2/genesis
  • interchainjs/esm/ibc/core/channel/v2/packet
  • interchainjs/esm/ibc/core/channel/v2/query
  • interchainjs/esm/ibc/core/channel/v2/query.rpc.func
  • interchainjs/esm/ibc/core/channel/v2/tx
  • interchainjs/esm/ibc/core/channel/v2/tx.registry
  • interchainjs/esm/ibc/core/channel/v2/tx.rpc.func
  • interchainjs/esm/ibc/core/client/v1/client
  • interchainjs/esm/ibc/core/client/v1/genesis
  • interchainjs/esm/ibc/core/client/v1/query
  • interchainjs/esm/ibc/core/client/v1/query.rpc.func
  • interchainjs/esm/ibc/core/client/v1/tx
  • interchainjs/esm/ibc/core/client/v1/tx.registry
  • interchainjs/esm/ibc/core/client/v1/tx.rpc.func
  • interchainjs/esm/ibc/core/client/v2/config
  • interchainjs/esm/ibc/core/client/v2/counterparty
  • interchainjs/esm/ibc/core/client/v2/genesis
  • interchainjs/esm/ibc/core/client/v2/query
  • interchainjs/esm/ibc/core/client/v2/query.rpc.func
  • interchainjs/esm/ibc/core/client/v2/tx
  • interchainjs/esm/ibc/core/client/v2/tx.registry
  • interchainjs/esm/ibc/core/client/v2/tx.rpc.func
  • interchainjs/esm/ibc/core/commitment/v1/commitment
  • interchainjs/esm/ibc/core/commitment/v2/commitment
  • interchainjs/esm/ibc/core/connection/v1/connection
  • interchainjs/esm/ibc/core/connection/v1/genesis
  • interchainjs/esm/ibc/core/connection/v1/query
  • interchainjs/esm/ibc/core/connection/v1/query.rpc.func
  • interchainjs/esm/ibc/core/connection/v1/tx
  • interchainjs/esm/ibc/core/connection/v1/tx.registry
  • interchainjs/esm/ibc/core/connection/v1/tx.rpc.func
  • interchainjs/esm/ibc/core/types/v1/genesis
  • interchainjs/esm/ibc/lightclients/solomachine/v2/solomachine
  • interchainjs/esm/ibc/lightclients/solomachine/v3/solomachine
  • interchainjs/esm/ibc/lightclients/tendermint/v1/tendermint
  • interchainjs/esm/ibc/lightclients/wasm/v1/genesis
  • interchainjs/esm/ibc/lightclients/wasm/v1/query
  • interchainjs/esm/ibc/lightclients/wasm/v1/query.rpc.func
  • interchainjs/esm/ibc/lightclients/wasm/v1/tx
  • interchainjs/esm/ibc/lightclients/wasm/v1/tx.registry
  • interchainjs/esm/ibc/lightclients/wasm/v1/tx.rpc.func
  • interchainjs/esm/ibc/lightclients/wasm/v1/wasm
  • interchainjs/esm/index
  • interchainjs/esm/injective/bundle
  • interchainjs/esm/injective/types/v1beta1/account
  • interchainjs/esm/interchain/core/getSigner
  • interchainjs/esm/interchain/core/index
  • interchainjs/esm/registry
  • interchainjs/esm/tendermint/abci/types
  • interchainjs/esm/tendermint/bundle
  • interchainjs/esm/tendermint/crypto/keys
  • interchainjs/esm/tendermint/crypto/proof
  • interchainjs/esm/tendermint/p2p/types
  • interchainjs/esm/tendermint/types/block
  • interchainjs/esm/tendermint/types/evidence
  • interchainjs/esm/tendermint/types/params
  • interchainjs/esm/tendermint/types/types
  • interchainjs/esm/tendermint/types/validator
  • interchainjs/esm/tendermint/version/types
  • interchainjs/esm/types
  • interchainjs/esm/utf8
  • interchainjs/esm/varint
  • interchainjs/extern
  • interchainjs/gogoproto/gogo
  • interchainjs/google/api/annotations
  • interchainjs/google/api/http
  • interchainjs/google/bundle
  • interchainjs/google/protobuf/any
  • interchainjs/google/protobuf/descriptor
  • interchainjs/google/protobuf/duration
  • interchainjs/google/protobuf/timestamp
  • interchainjs/helper-func-types
  • interchainjs/helpers
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/controller
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/query
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/query.rpc.func
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/tx
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/tx.registry
  • interchainjs/ibc/applications/interchain_accounts/controller/v1/tx.rpc.func
  • interchainjs/ibc/applications/interchain_accounts/genesis/v1/genesis
  • interchainjs/ibc/applications/interchain_accounts/host/v1/host
  • interchainjs/ibc/applications/interchain_accounts/host/v1/query
  • interchainjs/ibc/applications/interchain_accounts/host/v1/query.rpc.func
  • interchainjs/ibc/applications/interchain_accounts/host/v1/tx
  • interchainjs/ibc/applications/interchain_accounts/host/v1/tx.registry
  • interchainjs/ibc/applications/interchain_accounts/host/v1/tx.rpc.func
  • interchainjs/ibc/applications/interchain_accounts/v1/account
  • interchainjs/ibc/applications/interchain_accounts/v1/metadata
  • interchainjs/ibc/applications/interchain_accounts/v1/packet
  • interchainjs/ibc/applications/packet_forward_middleware/v1/genesis
  • interchainjs/ibc/applications/transfer/v1/authz
  • interchainjs/ibc/applications/transfer/v1/denomtrace
  • interchainjs/ibc/applications/transfer/v1/genesis
  • interchainjs/ibc/applications/transfer/v1/packet
  • interchainjs/ibc/applications/transfer/v1/query
  • interchainjs/ibc/applications/transfer/v1/query.rpc.func
  • interchainjs/ibc/applications/transfer/v1/token
  • interchainjs/ibc/applications/transfer/v1/transfer
  • interchainjs/ibc/applications/transfer/v1/tx
  • interchainjs/ibc/applications/transfer/v1/tx.registry
  • interchainjs/ibc/applications/transfer/v1/tx.rpc.func
  • interchainjs/ibc/bundle
  • interchainjs/ibc/core/channel/v1/channel
  • interchainjs/ibc/core/channel/v1/genesis
  • interchainjs/ibc/core/channel/v1/query
  • interchainjs/ibc/core/channel/v1/query.rpc.func
  • interchainjs/ibc/core/channel/v1/tx
  • interchainjs/ibc/core/channel/v1/tx.registry
  • interchainjs/ibc/core/channel/v1/tx.rpc.func
  • interchainjs/ibc/core/channel/v2/genesis
  • interchainjs/ibc/core/channel/v2/packet
  • interchainjs/ibc/core/channel/v2/query
  • interchainjs/ibc/core/channel/v2/query.rpc.func
  • interchainjs/ibc/core/channel/v2/tx
  • interchainjs/ibc/core/channel/v2/tx.registry
  • interchainjs/ibc/core/channel/v2/tx.rpc.func
  • interchainjs/ibc/core/client/v1/client
  • interchainjs/ibc/core/client/v1/genesis
  • interchainjs/ibc/core/client/v1/query
  • interchainjs/ibc/core/client/v1/query.rpc.func
  • interchainjs/ibc/core/client/v1/tx
  • interchainjs/ibc/core/client/v1/tx.registry
  • interchainjs/ibc/core/client/v1/tx.rpc.func
  • interchainjs/ibc/core/client/v2/config
  • interchainjs/ibc/core/client/v2/counterparty
  • interchainjs/ibc/core/client/v2/genesis
  • interchainjs/ibc/core/client/v2/query
  • interchainjs/ibc/core/client/v2/query.rpc.func
  • interchainjs/ibc/core/client/v2/tx
  • interchainjs/ibc/core/client/v2/tx.registry
  • interchainjs/ibc/core/client/v2/tx.rpc.func
  • interchainjs/ibc/core/commitment/v1/commitment
  • interchainjs/ibc/core/commitment/v2/commitment
  • interchainjs/ibc/core/connection/v1/connection
  • interchainjs/ibc/core/connection/v1/genesis
  • interchainjs/ibc/core/connection/v1/query
  • interchainjs/ibc/core/connection/v1/query.rpc.func
  • interchainjs/ibc/core/connection/v1/tx
  • interchainjs/ibc/core/connection/v1/tx.registry
  • interchainjs/ibc/core/connection/v1/tx.rpc.func
  • interchainjs/ibc/core/types/v1/genesis
  • interchainjs/ibc/lightclients/solomachine/v2/solomachine
  • interchainjs/ibc/lightclients/solomachine/v3/solomachine
  • interchainjs/ibc/lightclients/tendermint/v1/tendermint
  • interchainjs/ibc/lightclients/wasm/v1/genesis
  • interchainjs/ibc/lightclients/wasm/v1/query
  • interchainjs/ibc/lightclients/wasm/v1/query.rpc.func
  • interchainjs/ibc/lightclients/wasm/v1/tx
  • interchainjs/ibc/lightclients/wasm/v1/tx.registry
  • interchainjs/ibc/lightclients/wasm/v1/tx.rpc.func
  • interchainjs/ibc/lightclients/wasm/v1/wasm
  • interchainjs/index
  • interchainjs/injective/bundle
  • interchainjs/injective/types/v1beta1/account
  • interchainjs/interchain/core/getSigner
  • interchainjs/interchain/core/index
  • interchainjs/package.json
  • interchainjs/registry
  • interchainjs/tendermint/abci/types
  • interchainjs/tendermint/bundle
  • interchainjs/tendermint/crypto/keys
  • interchainjs/tendermint/crypto/proof
  • interchainjs/tendermint/p2p/types
  • interchainjs/tendermint/types/block
  • interchainjs/tendermint/types/evidence
  • interchainjs/tendermint/types/params
  • interchainjs/tendermint/types/types
  • interchainjs/tendermint/types/validator
  • interchainjs/tendermint/version/types
  • interchainjs/types
  • interchainjs/utf8
  • interchainjs/varint

Readme

InterchainJS

A single, universal signing interface for any network. Birthed from the interchain ecosystem for builders. Create adapters for any Web3 network.

install

npm install interchainjs

Table of Contents

InterchainJS: Universal Signing for Web3

InterchainJS is a universal signing interface designed for seamless interoperability across blockchain networks. It is one of the core libraries of the Interchain JavaScript Stack, a modular framework that brings Web3 development to millions of JavaScript developers.

At its core, InterchainJS provides a flexible adapter pattern that abstracts away blockchain signing complexities, making it easy to integrate new networks, manage accounts, and support diverse authentication protocols and signing algorithms—all in a unified, extensible framework.

Overview

InterchainJS sits at the foundation of the Interchain JavaScript Stack, a set of tools that work together like nested building blocks:

  • InterchainJS → Powers signing across Cosmos, Solana, Ethereum (EIP-712), and beyond.
  • Interchain Kit → Wallet adapters that connect dApps to multiple blockchain networks.
  • Interchain UI → A flexible UI component library for seamless app design.
  • Create Interchain App → A developer-friendly starter kit for cross-chain applications.

This modular architecture ensures compatibility, extensibility, and ease of use, allowing developers to compose powerful blockchain applications without deep protocol-specific knowledge.

Visualizing InterchainJS Components

The diagram below illustrates how InterchainJS connects different signer types to various network classes, showcasing its adaptability for a wide range of blockchain environments.

graph LR
    signers --> cosmos_signer["Cosmos Network"]
    signers --> injective_signer["Injective Network"]
    signers --> solana_signer["Solana 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 --> eip1559_signer["EIP-1559 Signer"]
    ethereum_signer --> legacy_signer["Legacy Signer"]

    injective_signer --> injective_amino["Amino Signer"]
    injective_signer --> injective_direct["Direct Signer"]

    solana_signer --> solana_std["Standard 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

Tutorials & Documentation

The following resources provide comprehensive guidance for developers working with InterchainJS. Whether you're setting up a new application, implementing custom signers, or exploring advanced features, these tutorials and documentation will help you leverage the full power of InterchainJS across various blockchain networks.

Topic Documentation
Create Interchain App Create Interchain App
Building a Custom Signer Building a Custom Signer
Advanced Documentation View Docs
Solana Network Guide @interchainjs/solana

RPC Clients

RPC (Remote Procedure Call) clients enable communication between your application and blockchain networks. InterchainJS provides a flexible and type-safe way to create these clients, allowing you to query blockchain data with minimal configuration. The following example demonstrates how to create and use an RPC client to query data from a Cosmos-based blockchain.

import { getAllBalances } from "@interchainjs/cosmos/bank/v1beta1/query.rpc.func";

{ getRpcEndpoint } = useChain("cosmoshub");

const endpoint = await getRpcEndpoint();

// now you can query the cosmos modules
const balance = await getAllBalances(endpoint,{
  address: "cosmos1addresshere",
});

Tree Shakable Helpers

InterchainJS provides tree shakable helper functions to optimize your application's bundle size. These helpers follow a factory pattern that allows modern JavaScript bundlers to eliminate unused code through tree shaking. These helpers improve modularity and optimize performance by allowing you to import only the functionality you need. Tree shakable tutorial video: https://youtu.be/3dRm9HEklMo

How Tree Shakable Helpers Work

Each helper function is individually exported (e.g., getAllBalances). This pattern enables:

  1. Bundle Size Optimization: Only the functions you import and use are included in your final bundle
  2. Lazy Initialization: Helper functions are only constructed when explicitly called
  3. Customizable Configuration: Each helper can be configured with specific parameters

For example, query helpers are functions that return other functions, constructed with specific parameters:

// Import only what you need
import { getAllBalances } from "@interchainjs/cosmos/bank/v1beta1/query.rpc.func";

// Now you can query the blockchain
const balance = await getAllBalances(endpoint, {
  address: "cosmos1addresshere",
});

Available Helper Types

InterchainJS provides two main types of tree shakable helpers:

  1. Query Helpers: For retrieving data from the blockchain

    import { getValidator } from "@interchainjs/cosmos/staking/v1beta1/query.rpc.func";
  2. Transaction Helpers: For broadcasting transactions

    import { createDelegate } from "@interchainjs/cosmos/staking/v1beta1/tx.rpc.func";

Example: Combining Query and Transaction Helpers

Here's how you might use both types together in a staking scenario:

// Import helpers
import { getValidator } from "@interchainjs/cosmos/staking/v1beta1/query.rpc.func";
import { delegate } from "@interchainjs/cosmos/staking/v1beta1/tx.rpc.func";

// Query validator info
const { validator } = await getValidator(endpoint, {
  validatorAddr: "cosmosvaloper1...",
});

// Execute delegation
const result = await delegate(
  signingClient,
  signerAddress,
  {
    delegatorAddress: signerAddress,
    validatorAddress: validator.operatorAddress,
    amount: { denom: "uatom", amount: "1000000" },
  },
  fee,
  "Delegation via InterchainJS"
);

By importing only the specific helpers you need, you ensure that your application bundle remains as small and efficient as possible.

Framework Integration

These tree shakable helpers can be used with framework-specific implementations:

  • React: Available as hooks in @interchainjs/react

    import { useGetAllBalances } from "@interchainjs/react/cosmos/bank/v1beta1/query.rpc.react";
  • Vue: Available as composables in @interchainjs/vue

    import { useGetAllBalances } from "@interchainjs/vue/cosmos/bank/v1beta1/query.rpc.vue";

Examples and Documentation

For detailed usage examples and implementation patterns, refer to the test suite in the starship/tests directory.

Module-Specific Helpers

The following sections provide import examples for various Cosmos SDK modules.

Authz
// query helpers
import {
  getGrants,
  getGranterGrants,
  getGranteeGrants,
} from "@interchainjs/cosmos/authz/v1beta1/query.rpc.func";

// tx helpers
import {
  grant,
  revoke,
  exec,
} from "@interchainjs/cosmos/authz/v1beta1/tx.rpc.func";
Bank
// query helpers
import {
  getAllBalances,
  getDenomMetadata,
  getSupply,
  getParams,
} from "@interchainjs/cosmos/bank/v1beta1/query.rpc.func";

// tx helpers
import { send, multiSend } from "@interchainjs/cosmos/bank/v1beta1/tx.rpc.func";
Circuit
// query helpers
import {
  getAccount,
  getAccounts,
  getDisabledList,
} from "@interchainjs/cosmos/circuit/v1/query.rpc.func";

// tx helpers
import {
  authorizeCircuitBreaker,
  tripCircuitBreaker,
  resetCircuitBreaker,
} from "@interchainjs/cosmos/circuit/v1/tx.rpc.func";
Consensus
// query helpers
import { getParams } from "@interchainjs/cosmos/consensus/v1/query.rpc.func";

// tx helpers
import { updateParams } from "@interchainjs/cosmos/consensus/v1/tx.rpc.func";
Crisis
// tx helpers
import {
  verifyInvariant,
  updateParams,
} from "@interchainjs/cosmos/crisis/v1beta1/tx.rpc.func";
Distribution
// query helpers
import {
  getParams,
  getValidatorDistributionInfo,
  getValidatorOutstandingRewards,
  getValidatorCommission,
  getValidatorSlashes,
  getDelegationRewards,
  getDelegationTotalRewards,
} from "@interchainjs/cosmos/distribution/v1beta1/query.rpc.func";

// tx helpers
import {
  setWithdrawAddress,
  withdrawDelegatorReward,
  withdrawValidatorCommission,
  fundCommunityPool,
  communityPoolSpend,
  updateParams,
} from "@interchainjs/cosmos/distribution/v1beta1/tx.rpc.func";
Evidence
// query helpers
import {
  getEvidence,
  getAllEvidence,
} from "@interchainjs/cosmos/evidence/v1beta1/query.rpc.func";

// tx helpers
import { submitEvidence } from "@interchainjs/cosmos/evidence/v1beta1/tx.rpc.func";
Feegrant
// query helpers
import {
  getAllowance,
  getAllowances,
  getAllowancesByGranter,
} from "@interchainjs/cosmos/feegrant/v1beta1/query.rpc.func";

// tx helpers
import {
  grantAllowance,
  revokeAllowance,
  pruneAllowances,
} from "@interchainjs/cosmos/feegrant/v1beta1/tx.rpc.func";
Gov
// query helpers
import {
  getProposal,
  getProposals,
  getVote,
  getVotes,
  getParams,
  getDeposit,
  getDeposits,
  getTallyResult,
} from "@interchainjs/cosmos/gov/v1beta1/query.rpc.func";

// tx helpers
import {
  submitProposal,
  deposit,
  vote,
  voteWeighted,
} from "@interchainjs/cosmos/gov/v1beta1/tx.rpc.func";
Group
// query helpers
import {
  getGroupInfo,
  getGroupPolicyInfo,
  getGroupMembers,
  getGroupsByAdmin,
  getGroupPoliciesByGroup,
  getGroupPoliciesByAdmin,
} from "@interchainjs/cosmos/group/v1/query.rpc.func";

// tx helpers
import {
  createGroup,
  updateGroupMetadata,
  updateGroupMembers,
  updateGroupAdmin,
  updateGroupPolicyMetadata,
  submitProposal,
  vote,
  exec,
} from "@interchainjs/cosmos/group/v1/tx.rpc.func";
Mint
// query helpers
import {
  getParams,
  getInflation,
  getAnnualProvisions,
} from "@interchainjs/cosmos/mint/v1beta1/query.rpc.func";

// tx helpers
import { updateParams } from "@interchainjs/cosmos/mint/v1beta1/tx.rpc.func";
Nft
// query helpers
import {
  getBalance,
  getOwner,
  getClass,
  getClasses,
  getNFTs,
  getNFT,
} from "@interchainjs/cosmos/nft/v1/query.rpc.func";

// tx helpers
import { send } from "@interchainjs/cosmos/nft/v1/tx.rpc.func";
Staking
// query helpers
import {
  getValidators,
  getValidator,
  getValidatorDelegations,
  getValidatorUnbondingDelegations,
  getDelegation,
  getUnbondingDelegation,
} from "@interchainjs/cosmos/staking/v1beta1/query.rpc.func";

// tx helpers
import {
  createValidator,
  editValidator,
  delegate,
  undelegate,
  redelegate,
} from "@interchainjs/cosmos/staking/v1beta1/tx.rpc.func";
Vesting
// tx helpers
import {
  createVestingAccount,
  createPermanentLockedAccount,
  createPeriodicVestingAccount,
} from "@interchainjs/cosmos/vesting/v1beta1/tx.rpc.func";
CosmWasm
// query helpers
import {
  getContractInfo,
  getContractHistory,
  getContractsByCode,
  getAllContractState,
  getRawContractState,
  getSmartContractState,
  getCode,
  getCodes,
} from "@interchainjs/cosmwasm/wasm/v1/query.rpc.func";

// tx helpers
import {
  storeCode,
  instantiateContract,
  migrateContract,
  updateAdmin,
  clearAdmin,
} from "@interchainjs/cosmwasm/wasm/v1/tx.rpc.func";
IBC
// query helpers
import {
  getParams,
  getDenomHash,
  getEscrowAddress,
  getTotalEscrowForDenom,
} from "@interchainjs/ibc/applications/transfer/v1/query.rpc.func";

// tx helpers
import {
  transfer,
  updateParams,
} from "@interchainjs/ibc/applications/transfer/v1/tx.rpc.func";

Connecting with Wallets and Signing Messages

⚡️ For web interfaces, we recommend using interchain-kit. Continue below to see how to manually construct signers and clients.

Here are the docs on creating signers in interchain-kit that can be used with Keplr and other wallets.

Creating Signers

InterchainJS provides modern signers that implement the IUniSigner interface for consistent signing across networks:

import { DirectSigner } from '@interchainjs/cosmos';
import { Secp256k1HDWallet } from '@interchainjs/cosmos';
import { HDPath } from '@interchainjs/types';

// Method 1: Using HD Wallet (for development/testing)
const wallet = await Secp256k1HDWallet.fromMnemonic(mnemonic, {
  derivations: [{
    prefix: "cosmos",
    hdPath: HDPath.cosmos(0, 0, 0).toString(),
  }]
});

const signer = new DirectSigner(wallet, {
  chainId: 'cosmoshub-4',
  queryClient: queryClient,
  addressPrefix: 'cosmos'
});

// Method 2: Using External Wallets (for production)
await window.keplr.enable(chainId);
const offlineSigner = window.keplr.getOfflineSigner(chainId);

const signer = new DirectSigner(offlineSigner, {
  chainId: 'cosmoshub-4',
  queryClient: queryClient,
  addressPrefix: 'cosmos'
});

For wallet integration, we recommend:

getSigner Factory Function

The getSigner function is a powerful factory utility that provides a unified interface for creating signers across different blockchain networks. It abstracts away the complexity of signer instantiation and configuration, making it easy to work with multiple networks through a consistent API.

How It Works

The getSigner function creates appropriate signer instances based on your preferred signing method and network type. It supports Cosmos-based networks (including Injective) and Ethereum networks, with automatic configuration merging and comprehensive error handling.

import { getSigner, COSMOS_DIRECT } from '@interchainjs/interchain/core';
import { DirectSigner } from '@interchainjs/cosmos';

const signer = getSigner<DirectSigner>(wallet, {
  preferredSignType: COSMOS_DIRECT,
  signerOptions: {
    queryClient: cosmosQueryClient,
    chainId: 'cosmoshub-4',
    addressPrefix: 'cosmos'
  }
});

Supported Signer Types

The getSigner function supports five main signer types:

Signer Type Network Description Wallet Support
'cosmos_amino' Cosmos Legacy Amino signing for Cosmos networks IWallet, OfflineSigner
'cosmos_direct' Cosmos Modern Protobuf signing for Cosmos networks IWallet, OfflineSigner
'solana_std' Solana Standard Solana transaction workflow signer IWallet, Keypair
'ethereum_legacy' Ethereum Legacy Ethereum transactions (pre-EIP-1559) IWallet only
'ethereum_eip1559' Ethereum Modern Ethereum transactions with EIP-1559 IWallet only

Important: Ethereum signers (ethereum_legacy and ethereum_eip1559) only work with IWallet implementations and do not support OfflineSigner interfaces.

Configuration Options

Each signer type accepts specific configuration options that are automatically merged with sensible defaults:

Cosmos Signers (cosmos_amino, cosmos_direct)

interface CosmosSignerOptions {
  // Required
  queryClient: CosmosQueryClient;

  // Optional with defaults
  chainId?: string;
  addressPrefix?: string;        // Default: 'cosmos'
  multiplier?: number;           // Default: 1.3 (30% gas buffer)
  gasPrice?: string | number;    // Default: 'average'

  // Advanced options
  message?: {
    hash?: string | HashFunction; // Default: 'sha256'
  };
  signature?: {
    format?: SignatureFormatFunction | string;
  };
  unordered?: boolean;           // Default: false
  extensionOptions?: Any[];
  nonCriticalExtensionOptions?: Any[];
}

Ethereum Signers (ethereum_legacy, ethereum_eip1559)

Solana Signers (solana_std)

Solana signers require an ISolanaQueryClient and either a Solana Keypair or an IWallet implementation that exposes Solana-compatible accounts. Configuration options include:

Pair the signer with the request-object query clients created via createSolanaQueryClient for consistent RPC typing. See the full Solana workflows in /networks/solana/README.md.

interface SolanaSignerOptions {
  // Required
  queryClient: ISolanaQueryClient;

  // Optional defaults
  commitment?: string;     // Default: 'processed'
  skipPreflight?: boolean; // Default: false
  maxRetries?: number;     // Default: 3
}
interface EthereumSignerOptions {
  // Required
  queryClient: EthereumQueryClient;

  // Optional with defaults
  gasMultiplier?: number;        // Default: 1.5 (50% gas buffer)
  chainId?: number;              // Auto-detected if not provided

  // Legacy transaction options
  gasPrice?: bigint;             // Default: 20 gwei

  // EIP-1559 transaction options
  maxFeePerGas?: bigint;         // Default: 30 gwei
  maxPriorityFeePerGas?: bigint; // Default: 2 gwei

  // Advanced options
  signature?: {
    format?: EthereumSignatureFormatFunction | string;
  };
}

Usage Examples

Basic Cosmos Direct Signer

import { getSigner } from '@interchainjs/interchain/core';
import { DirectSigner } from '@interchainjs/cosmos';
import { Secp256k1HDWallet } from '@interchainjs/cosmos/wallets/secp256k1hd';

// Create wallet
const wallet = await Secp256k1HDWallet.fromMnemonic(mnemonic, {
  derivations: [{
    prefix: "cosmos",
    hdPath: HDPath.cosmos(0, 0, 0).toString()
  }]
});

// Create signer with minimal configuration
const signer = getSigner<DirectSigner>(wallet, {
  preferredSignType: 'cosmos_direct',
  signerOptions: {
    queryClient: cosmosQueryClient,
    chainId: 'cosmoshub-4',
    addressPrefix: 'cosmos'
  }
});

Cosmos Amino Signer with Custom Configuration

import { AminoSigner } from '@interchainjs/cosmos';

const aminoSigner = getSigner<AminoSigner>(wallet, {
  preferredSignType: 'cosmos_amino',
  signerOptions: {
    queryClient: cosmosQueryClient,
    chainId: 'osmosis-1',
    addressPrefix: 'osmo',
    multiplier: 1.5,              // 50% gas buffer
    gasPrice: '0.025uosmo',       // Custom gas price
    message: {
      hash: 'sha256'              // Explicit hash function
    }
  }
});

Using with External Wallets (Keplr)

// Enable Keplr for the chain
await window.keplr.enable('cosmoshub-4');
const offlineSigner = window.keplr.getOfflineSigner('cosmoshub-4');

const signer = getSigner<DirectSigner>(offlineSigner, {
  preferredSignType: 'cosmos_direct',
  signerOptions: {
    queryClient: cosmosQueryClient,
    chainId: 'cosmoshub-4',
    addressPrefix: 'cosmos'
  }
});

Solana Standard Signer

import { getSigner, SOLANA_STD } from '@interchainjs/interchain/core';
import {
  createSolanaQueryClient,
  DEVNET_ENDPOINT,
  Keypair,
  PublicKey,
  SolanaSigner,
  SystemProgram,
  solToLamports
} from '@interchainjs/solana';

const queryClient = await createSolanaQueryClient(DEVNET_ENDPOINT);
const wallet = Keypair.generate();

const solanaSigner = getSigner<SolanaSigner>(wallet, {
  preferredSignType: SOLANA_STD,
  signerOptions: {
    queryClient,
    commitment: 'confirmed'
  }
});

const result = await solanaSigner.signAndBroadcast({
  instructions: [
    SystemProgram.transfer({
      fromPubkey: wallet.publicKey,
      toPubkey: new PublicKey('11111111111111111111111111111112'),
      lamports: solToLamports(0.05)
    })
  ]
});

console.log('Transaction signature:', result.signature);

Ethereum Legacy Signer

import { LegacyEthereumSigner } from '@interchainjs/ethereum';
import { EthSecp256k1HDWallet } from '@interchainjs/ethereum/wallets/ethsecp256k1hd';

const ethWallet = await EthSecp256k1HDWallet.fromMnemonic(mnemonic);

const ethSigner = getSigner<LegacyEthereumSigner>(ethWallet, {
  preferredSignType: 'ethereum_legacy',
  signerOptions: {
    queryClient: ethereumQueryClient,
    gasMultiplier: 1.2,
    gasPrice: BigInt('25000000000') // 25 gwei
  }
});

Ethereum EIP-1559 Signer

import { EIP1559EthereumSigner } from '@interchainjs/ethereum';

const eip1559Signer = getSigner<EIP1559EthereumSigner>(ethWallet, {
  preferredSignType: 'ethereum_eip1559',
  signerOptions: {
    queryClient: ethereumQueryClient,
    maxFeePerGas: BigInt('40000000000'),         // 40 gwei
    maxPriorityFeePerGas: BigInt('3000000000'), // 3 gwei
    gasMultiplier: 1.3
  }
});

Multi-Network Example

// Create signers for different networks
const cosmosDirectSigner = getSigner<DirectSigner>(cosmosWallet, {
  preferredSignType: 'cosmos_direct',
  signerOptions: {
    queryClient: cosmosQueryClient,
    chainId: 'cosmoshub-4',
    addressPrefix: 'cosmos'
  }
});

const osmosisAminoSigner = getSigner<AminoSigner>(cosmosWallet, {
  preferredSignType: 'cosmos_amino',
  signerOptions: {
    queryClient: osmosisQueryClient,
    chainId: 'osmosis-1',
    addressPrefix: 'osmo'
  }
});

const ethereumSigner = getSigner<EIP1559EthereumSigner>(ethWallet, {
  preferredSignType: 'ethereum_eip1559',
  signerOptions: {
    queryClient: ethereumQueryClient,
    chainId: 1 // Ethereum mainnet
  }
});

Error Handling

The getSigner function provides comprehensive error handling with descriptive error messages:

Common Error Scenarios

try {
  const signer = getSigner<DirectSigner>(wallet, options);
} catch (error) {
  if (error.message.includes('walletOrSigner is required')) {
    // Handle missing wallet
    console.error('Wallet instance is required');
  } else if (error.message.includes('options are required')) {
    // Handle missing options
    console.error('Configuration options are required');
  } else if (error.message.includes('signerOptions are required')) {
    // Handle missing signer options
    console.error('Signer configuration is required');
  } else if (error.message.includes('Unsupported sign type')) {
    // Handle invalid signer type
    console.error('Invalid signer type specified');
  } else if (error.message.includes('queryClient is required')) {
    // Handle missing query client
    console.error('Query client is required in configuration');
  } else if (error.message.includes('Ethereum signers require IWallet')) {
    // Handle Ethereum signer with OfflineSigner
    console.error('Ethereum signers only work with IWallet, not OfflineSigner');
  } else if (error.message.includes('@interchainjs/cosmos is installed')) {
    // Handle missing dependencies
    console.error('Missing required package: @interchainjs/cosmos');
  } else if (error.message.includes('@interchainjs/ethereum is installed')) {
    // Handle missing dependencies
    console.error('Missing required package: @interchainjs/ethereum');
  }
}

Validation Best Practices

// Validate inputs before calling getSigner
function createSigner(wallet: IWallet | OfflineSigner, type: SignerType, options: any) {
  // Check wallet
  if (!wallet) {
    throw new Error('Wallet is required');
  }

  // Check for Ethereum signer compatibility
  if ((type === 'ethereum_legacy' || type === 'ethereum_eip1559') && !('privateKeys' in wallet)) {
    throw new Error('Ethereum signers require IWallet implementation');
  }

  // Check required options
  if (!options?.queryClient) {
    throw new Error('Query client is required');
  }

  return getSigner(wallet, {
    preferredSignType: type,
    signerOptions: options
  });
}

Best Practices

1. Use TypeScript Generics

Always specify the expected signer type for better type safety:

// Good: Type-safe with autocompletion
const signer = getSigner<DirectSigner>(wallet, options);

// Avoid: No type safety
const signer = getSigner(wallet, options);

2. Handle Network-Specific Requirements

// Cosmos networks: Support both IWallet and OfflineSigner
const cosmosSigner = getSigner<DirectSigner>(walletOrOfflineSigner, {
  preferredSignType: 'cosmos_direct',
  signerOptions: cosmosOptions
});

// Ethereum networks: Only IWallet supported
if ('privateKeys' in wallet) {
  const ethSigner = getSigner<LegacyEthereumSigner>(wallet, {
    preferredSignType: 'ethereum_legacy',
    signerOptions: ethereumOptions
  });
}

3. Configuration Management

// Create reusable configuration objects
const cosmosConfig = {
  queryClient: cosmosQueryClient,
  chainId: 'cosmoshub-4',
  addressPrefix: 'cosmos',
  multiplier: 1.3
};

const osmosisConfig = {
  queryClient: osmosisQueryClient,
  chainId: 'osmosis-1',
  addressPrefix: 'osmo',
  gasPrice: '0.025uosmo'
};

// Use configurations
const cosmosSigner = getSigner<DirectSigner>(wallet, {
  preferredSignType: 'cosmos_direct',
  signerOptions: cosmosConfig
});

4. Error Recovery

async function createSignerWithFallback(wallet: IWallet, primaryConfig: any, fallbackConfig: any) {
  try {
    return getSigner<DirectSigner>(wallet, {
      preferredSignType: 'cosmos_direct',
      signerOptions: primaryConfig
    });
  } catch (error) {
    console.warn('Primary configuration failed, trying fallback:', error.message);
    return getSigner<AminoSigner>(wallet, {
      preferredSignType: 'cosmos_amino',
      signerOptions: fallbackConfig
    });
  }
}

5. Testing Considerations

// Use minimal configuration for tests
const testSigner = getSigner<DirectSigner>(testWallet, {
  preferredSignType: 'cosmos_direct',
  signerOptions: {
    queryClient: mockQueryClient
    // Other options will use defaults
  }
});

// Verify signer functionality
const accounts = await testSigner.getAccounts();
expect(accounts.length).toBeGreaterThan(0);

Broadcasting Messages

With your signer, you can sign and broadcast messages using the unified interface:

const msg = {
  typeUrl: '/cosmos.bank.v1beta1.MsgSend',
  value: {
    fromAddress: 'cosmos1...',
    toAddress: 'cosmos1...',
    amount: [{ denom: 'uatom', amount: '1000000' }]
  }
};

const result = await signer.signAndBroadcast({
  messages: [msg],
  fee: {
    amount: [{ denom: 'uatom', amount: '5000' }],
    gas: '200000'
  },
  memo: 'Transfer via InterchainJS'
});

console.log('Transaction hash:', result.transactionHash);

All In One Example

For a comprehensive example of how to use InterchainJS to send messages, please see the example here. This example demonstrates how to:

  • Initialize the client.
  • Create and sign messages.
  • Broadcast transactions.
  • Handle responses and errors.

The example provides a complete walkthrough of setting up the client, creating a message for sending txs, and broadcasting the transaction to the chain.


Amino Helpers

The @interchainjs/amino package provides utilities for working with Amino messages and types. It includes functions for encoding and decoding messages, as well as for creating and manipulating Amino types.

Package Description
@interchainjs/amino Amino message and type utilities.

Auth

The authentication module is universally applied across different networks.

Package Description
@interchainjs/auth Handles authentication across blockchain networks.
Advanced Docs: Auth vs. Wallet vs. Signer Explanation of the differences between authentication, wallets, and signers.

Crypto Helpers

The @interchainjs/crypto package provides utilities for working with cryptographic primitives. It includes functions for encoding and decoding messages, as well as for creating and manipulating Amino types.

Package Description
@interchainjs/crypto Crypto message and type utilities.

Encoding Helpers

The @interchainjs/encoding package provides utilities for working with encoding. It includes functions for encoding and decoding messages, as well as for creating and manipulating encoding types.

Package Description
@interchainjs/encoding Encoding message and type utilities.

Math Helpers

The @interchainjs/math package provides utilities for working with math. It includes functions for encoding and decoding messages, as well as for creating and manipulating math types.

Package Description
@interchainjs/math Math message and type utilities.

Pubkey Helpers

The @interchainjs/pubkey package provides utilities for working with pubkeys. It includes functions for encoding and decoding messages, as well as for creating and manipulating pubkey types.

Package Description
@interchainjs/pubkey Pubkey message and type utilities.

Supported Networks

Cosmos Network

Feature Package
Transactions @interchainjs/cosmos
Cosmos Types @interchainjs/cosmos-types
Migration from @cosmjs interchainjs

Injective Network

Feature Package
Transactions @interchainjs/injective

Solana Network

Leverage the request-object query client with automatic protocol detection and the solana_std signer for wallet-friendly workflows.

Feature Package
Query & Transactions @interchainjs/solana
Standard Signer (solana_std) Solana Signer Guide

Ethereum Network

Feature Package
Transactions @interchainjs/ethereum

Developing

When first cloning the repo:

yarn
yarn build:dev

Codegen

Contract schemas live in ./contracts, and protos in ./proto. Look inside of scripts/interchainjs.telescope.json and configure the settings for bundling your SDK and contracts into interchainjs:

yarn codegen

Interchain JavaScript Stack ⚛️

A unified toolkit for building applications and smart contracts in the Interchain ecosystem

Category Tools Description
Chain Information Chain Registry, Utils, Client Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application.
Wallet Connectors Interchain Kit, Cosmos Kit Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface.
Signing Clients InterchainJS, CosmJS A single, universal signing interface for any network
SDK Clients Telescope Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules.
Starter Kits Create Interchain App, Create Cosmos App Set up a modern Interchain app by running one command.
UI Kits Interchain UI The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit.
Testing Frameworks Starship Unified Testing and Development for the Interchain.
TypeScript Smart Contracts Create Hyperweb App Build and deploy full-stack blockchain applications with TypeScript
CosmWasm Contracts CosmWasm TS Codegen Convert your CosmWasm smart contracts into dev-friendly TypeScript classes.

Credits

🛠 Built by Hyperweb (formerly Cosmology) — if you like our tools, please checkout and contribute to our github ⚛️

Disclaimer

AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.

No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.