hello

How to call the API from an app

const snapId = `npm:@hashgraph/hedera-wallet-snap`

const handleHelloAPI = async () => {
  await window.ethereum.request({
    method: 'wallet_invokeSnap',
    params: {
      snapId,
      request: {
        method: 'hello',
        params: {
          network: 'testnet',
          mirrorNodeUrl: 'https://testnet.mirrornode.hedera.com'
        }
      }
    }
  })
}

What the API does

  1. Retrieves the currently connected account the user has selected on Metamask. If it's the first time, a new snap account is created and the account info is saved in snap state.

  2. Displays an alert dialog blox on Metamask with some content.

Some example responses:

For a hedera account id 0.0.3581604:

 {
    "currentAccount": {
        "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
        "externalEvmAddress": "",
        "hederaAccountId": "0.0.3581604",
        "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
        "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
        "balance": {
            "hbars": 5.67332072,
            "timestamp": "Wed, 13 Mar 2024 20:37:05 GMT",
            "tokens": {
                "0.0.3590430": {
                    "balance": 1,
                    "decimals": 1,
                    "tokenId": "0.0.3590430",
                    "name": "Token1",
                    "symbol": "KP1",
                    "tokenType": "FUNGIBLE_COMMON",
                    "supplyType": "INFINITE",
                    "totalSupply": "100",
                    "maxSupply": "0"
                }
            }
        },
        "network": "testnet",
        "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
    }
}

Live Demo on CodePen

Last updated

Was this helpful?