@kadena/wallet-adapter-ecko
v0.0.6
Published
Kadena Wallet Adapter for Ecko
Keywords
Readme
Ecko Wallet Adapter
This package provides an adapter for the Ecko Wallet extension on Kadena. It
extends a base adapter but uses the "kda_" RPC prefix (required by Ecko)
rather than the standard "kadena_" prefix.
Installation
npm install @kadena/wallet-adapter-ecko
# or
yarn add @kadena/wallet-adapter-ecko
# or
pmpm add @kadena/wallet-adapter-eckoUsage with wallet-adapter-core
Wallet adapters are designed to work easily with WalletAdapterClient from
@kadena/wallet-adapter-core. This allows loading in multiple adapters and
automatically detecting which are available and providing a uniform api to
interact with the adapters.
import { createEckoAdapter } from '@kadena/wallet-adapter-ecko';
import { WalletAdapterClient } from '@kadena/wallet-adapter-core';
const client = new WalletAdapterClient([createEckoAdapter()]);
await client.init();
await client.connect('ecko');Standalone usage with the create method
The primary export is a factory function createEckoAdapter, which detects the
Ecko wallet provider and, if found, returns an instance of EckoAdapter. If
Ecko is not installed, it returns null:
import { createEckoAdapter } from '@kadena/wallet-adapter-ecko';
(async () => {
const provider = await createEckoAdapter.detect();
if (!provider) {
console.log('Ecko Wallet not found.');
return;
}
const adapter = await createEckoAdapter.adapter(provider);
await adapter.connect();
const account = await adapter.getActiveAccount();
console.log('Active account:', account);
})();Manual Usage of the Adapter or Detection
If you need lower-level access, the following are also exported:
EckoAdapter: The actual adapter class, in case you want to instantiate it manually without relying on the lazy-loading factory.detectEckoProvider: A standalone function that checks whether the Ecko wallet is present. It returns the provider if found, ornullotherwise.
import { EckoAdapter, detectEckoProvider } from '@kadena/wallet-adapter-ecko';
(async () => {
const provider = await detectEckoProvider({ silent: true });
if (!provider) {
console.log('Ecko not available.');
return;
}
const adapter = new EckoAdapter({ provider });
await adapter.connect();
console.log('Connected to Ecko directly!');
})();Supported methods
| Method | KIP | Supported | | --------------------- | ----------- | --------- | | kadena_sign_v1 | KIP-17 | Yes | | kadena_quicksign_v1 | KIP-17 | Yes | | kadena_getAccount_v1 | KIP-37 | Yes | | kadena_getAccounts_v2 | KIP-38 | Yes | | kadena_getNetwork_v1 | KIP-39 | Yes | | kadena_getNetworks_v1 | KIP-40 | Yes |
Other Notes
- The adapter internally calls
kda_connect,kda_requestSign,kda_disconnect, and similar Ecko-specific RPC methods (all"kda_"prefixed). - If you support multiple wallets in your app, the lazy import in
eckoAdaptercan help reduce your initial bundle size, because the Ecko adapter code is only loaded if the provider is actually detected. - Make sure the user has installed the Ecko Wallet extension. Otherwise,
detection will yield
null.
