Skip to main content

Cosmos Provider

FoxWallet employs the same protocol as Keplr. Currently, Cosmos network is only supported in the FoxWallet mobile app, with Chrome extension support coming soon.

Get Provider​

function getProvider() {
const provider = window.foxwallet && window.foxwallet.cosmos;
if (!provider) {
window.open("https://foxwallet.com/download");
throw `Please guide users to download from FoxWallet official website`;
}
return provider;
}

Methods​

Get Key​

getKey(chainId: string): Promise<{
// Name of the selected Wallet.
username: string;
algo: string;
pubKey: Uint8Array;
address: Uint8Array;
bech32Address: string;
}>

await provider.getKey('coreum-mainnet-1')

Sign Amino​

signAmino(chainId: string, signer: string, signDoc: StdSignDoc): Promise<AminoSignResponse>

Similar to CosmJS OfflineSigner's signAmino, FoxWallet's signAmino requires the chain ID as a required parameter. It signs the Amino-encoded StdSignDoc.

Sign Direct​

signDirect(chainId:string, signer:string, signDoc: {
/** SignDoc bodyBytes */
bodyBytes?: Uint8Array | null;
/** SignDoc authInfoBytes */
authInfoBytes?: Uint8Array | null;
/** SignDoc chainId */
chainId?: string | null;
/** SignDoc accountNumber */
accountNumber?: Long | null;
}): Promise<DirectSignResponse>

Similar to CosmJS OfflineDirectSigner's signDirect, FoxWallet's signDirect requires the chain ID as a required parameter. It signs the Proto-encoded StdSignDoc.

Send Transaction​

sendTx(
chainId: string,
tx: Uint8Array,
mode: BroadcastMode
): Promise<Uint8Array>;

To request broadcast a transaction, it'll return the transaction hash if the broadcast is successfully, otherwise it throws an error.

Sign Arbitrary​

signArbitrary(
chainId: string,
signer: string,
data: string | Uint8Array
): Promise<StdSignature>;

This is an experimental implementation of ADR-36. The risk of using this feature is borne by you.

Supported Connectors​

CosmosJS​


const offlineSigner = window.foxwallet.cosmos.getOfflineSigner(chainId);
// or use window.foxwallet.getOfflineSigner to obtain an OfflineSigner
// const offlineSigner = window.foxwallet.getOfflineSigner(chainId);

const accounts = await offlineSigner.getAccounts();

const cosmJS = new SigningCosmosClient(
"https://full-node.mainnet-1.coreum.dev:26657",
accounts[0].address,
offlineSigner,
);