Supported Wallets

Using Arweave & Ethereum wallets with HollowDB.

HollowDB supports both Arweave wallets and Ethereum wallets. In this page, we will show several ways to create the signer object.

Arweave Wallet

An Arweave wallet is defined by a JWKInterface object, which is simply a JSON file that you can download from arweave.app. You can read the JSON object from disk, and pass it as the signer to HollowDB.

import {JWKInterface} from 'warp-contracts';

const jwkPath = './some-wallet.json';
const signer = JSON.parse(fs.readFileSync(walletPath).toString()) as JWKInterface;

Always .gitignore your wallet files!

Injected Arweave Wallet

If you are using HollowDB in browser, you can use arweave-wallet-connector to connect to your existing wallet on arweave.app and use it as an injected wallet in HollowDB! This is done by providing the string "use_wallet" as the signer argument, which internally does the same to connect to Warp Contracts.

Using an injected Arweave wallet will trigger a pop-up on each interaction, similar to MetaMask pop-ups where you sign the transaction.

// instantiate Arweave Web Wallet
const arweaveWebWallet = new ArweaveWebWallet(
  {
    name: "your-app-name",
    logo: "your-app-logo",
  },
  {
    state: {
      url: "arweave.app",
    },
  }
);

// connect
await arweaveWebWallet.connect();

// the magic string
const signer = "use_wallet";

Ethereum Wallets

Similar to injected Arweave wallet, you can use an injected EVM-compatible wallet (such as MetaMask) to connect to HollowDB. This is made possible with the Warp Contract Signature plugin. Please refer to their documentation for more details.

Once you are able to obtain the evmSignature as described in their documentation, you can use the following signer for HollowDB:

import { CustomSignature } from "warp-contracts";

// assuming `evmSignature` exists at this point
const signer: CustomSignature = { signer: evmSignature, signatureType: 'ethereum' }

Last updated