arrow-left

All pages
gitbookPowered by GitBook
1 of 8

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

hscs/getSmartContractInfo

hashtag
How to call the API from an app

Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this documentation.

Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

hashtag
What the API does

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

  2. Parses the arguments that were passed such as the gas, bytecode, adminKey, etc.

  3. Calls the to query the network that returns the current state of a smart contract instance, including its balance.

An example response:

hashtag
Live Demo on CodePen

circle-info
  • Note: Visit to activate your hedera account before you interact with the demo

  • If you're getting any errors with the live demo, make sure you go through the section to learn about what you may be missing. You need to install in your browser for the live demo to work.

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

const getSmartContractInfoAPI = async () => {
  const externalAccountParams = {
    externalAccount: {
      accountIdOrEvmAddress: '0.0.12345',
      curve: 'ED25519'
    }
  }

  await window.ethereum.request({
    method: 'wallet_invokeSnap',
    params: {
      snapId,
      request: {
        method: 'hscs/getSmartContractInfo',
        params: {
          network: 'testnet',
          contractId: '0.0.4409710'
          /* 
            Uncomment the below line if you want to connect 
            to a non-metamask account
          */
          // ...externalAccountParams
        }
      }
    }
  })
}
Returns the transaction receipt as response

To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at .

  • You can also check out the to learn how each API works.

  • snap account
    Hedera SDK Get Smart Contract Info APIarrow-up-right
    https://pulse.tuum.tech/arrow-up-right
    FAQs
    Metamaskarrow-up-right
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "info": {
            "contractId": "0.0.4409710",
            "accountId": "0.0.4409710",
            "contractAccountId": "0ca39034793f026127bcfb651b85515394fd21b1",
            "adminKey": "03d5f871cfe7134c67799dc6df75cdfc4b3f4fd797442350297efa9483661916d2",
            "expirationTime": "Mon, 02 Sep 2024 14:57:53 GMT",
            "autoRenewPeriod": 7776000,
            "autoRenewAccountId": "",
            "storage": 128,
            "contractMemo": "updating contract on June 4 2024",
            "balance": 0,
            "isDeleted": false,
            "tokenRelationships": {},
            "ledgerId": "testnet",
            "stakingInfo": {
              "declineStakingReward": false,
              "stakePeriodStart": null,
              "pendingReward": "0 tℏ",
              "stakedToMe": "0 tℏ",
              "stakedAccountId": null,
              "stakedNodeId": null
            }
        }
    }
    template application github repositoryarrow-up-right
    API reference

    Hedera Smart Contract Service APIs

    hscs/callSmartContractFunction

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this documentation.

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    circle-info
    • The call can use at maximum the given amount of gas – the paying account will not be charged for any unspent gas.

    hashtag
    What the API does

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

    2. Parses the arguments that were passed such as the gas, bytecode, adminKey, etc.

    3. Calls the to call a function of the given smart contract instance, giving it functionParameters as its input.

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the section to learn about what you may be missing. You need to install in your browser for the live demo to work.

    hscs/deleteSmartContract

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this documentation.

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    circle-info
    • If you had not created your smart contract setting the adminKey,you will not be able to delete your smart contract

    hashtag
    What the API does

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

    2. Parses the arguments that were passed such as the contractid, transferAccountId, transferContractId, etc.

    3. Calls the to delete a smart contract from the Hedera network. Once a smart contract is marked deleted, you will not be able to modify any of the contract's properties.

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the section to learn about what you may be missing. You need to install in your browser for the live demo to work.

    hscs/getSmartContractFunction

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this .

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    circle-info

    hscs/updateSmartContract

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this .

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    circle-info
    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    type SmartContractFunctionParameter = {
        type: 'string' | 'bytes' | 'boolean' | 'int' | 'uint';
        value: string | number | boolean | Uint8Array;
    }
    
    const callSmartContractFunctionAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/callSmartContractFunction',
            params: {
              network: 'testnet',
              contractId: '0.0.4409710',
              functionName: 'setGreeting',
              functionParams?, // Optional param - type: SmartContractFunctionParameter[]
              gas?, // Optional param - type: number
              senderAccountId?: // Optional param - type: string
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    const deleteSmartContractAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/deleteSmartContract',
            params: {
              network: 'testnet',
              contractId: '0.0.4409710',
              transferAccountId?, // Optional param - type: string
              transferContractId?, // Optional param - type: string
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    Returns the transaction receipt as response

    To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at template application github repositoryarrow-up-right.

  • You can also check out the API reference to learn how each API works.

  • snap account
    Hedera SDK Call Smart Contract Function APIarrow-up-right
    https://pulse.tuum.tech/arrow-up-right
    FAQs
    Metamaskarrow-up-right

    Returns the transaction receipt as response

    To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at template application github repositoryarrow-up-right.

  • You can also check out the API reference to learn how each API works.

  • snap account
    Hedera SDK Create Delete Contract APIarrow-up-right
    https://pulse.tuum.tech/arrow-up-right
    FAQs
    Metamaskarrow-up-right
    • The call can use at maximum the given amount of gas – the paying account will not be charged for any unspent gas.

    hashtag
    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. Parses the arguments that were passed such as the gas, bytecode, adminKey, etc.

    3. Calls the Hedera SDK Get Smart Contract Function APIarrow-up-right to query a function of the given smart contract instance, giving it function parameters as its inputs. This is performed locally on the particular node that the client is communicating with. It cannot change the state of the contract instance.

    4. Returns the transaction receipt as response

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit https://pulse.tuum.tech/arrow-up-right to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the FAQs section to learn about what you may be missing. You need to install Metamaskarrow-up-right in your browser for the live demo to work.

    • To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at .

    • You can also check out the to learn how each API works.

    documentation
    • If you had not created your smart contract setting the adminKey,you will not be able to update your smart contract

    hashtag
    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. Parses the arguments that were passed such as the contractid, adminKey, etc.

    3. Calls the Hedera SDK Create Update Contract APIarrow-up-right to modify the smart contract entity state like admin keys, proxy account, auto-renew period, and memo.

    4. Returns the transaction receipt as response

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit https://pulse.tuum.tech/arrow-up-right to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the FAQs section to learn about what you may be missing. You need to install Metamaskarrow-up-right in your browser for the live demo to work.

    • To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at .

    • You can also check out the to learn how each API works.

    documentation

    hscs/createSmartContract

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this .

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    circle-info
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "receipt": {
            "status": "SUCCESS",
            "accountId": "",
            "fileId": "",
            "contractId": "0.0.4409710",
            "topicId": "",
            "tokenId": "",
            "scheduleId": "",
            "exchangeRate": {
                "hbars": 30000,
                "cents": 358240,
                "expirationTime": "Tue, 04 Jun 2024 16:00:00 GMT",
                "exchangeRateInCents": 11.941333333333333
            },
            "topicSequenceNumber": "0",
            "topicRunningHash": "",
            "totalSupply": "0",
            "scheduledTransactionId": "",
            "serials": [],
            "duplicates": [],
            "children": []
        }
    }
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "receipt": {
            "status": "SUCCESS",
            "accountId": "",
            "fileId": "",
            "contractId": "0.0.4409710",
            "topicId": "",
            "tokenId": "",
            "scheduleId": "",
            "exchangeRate": {
                "hbars": 30000,
                "cents": 358240,
                "expirationTime": "Tue, 04 Jun 2024 16:00:00 GMT",
                "exchangeRateInCents": 11.941333333333333
            },
            "topicSequenceNumber": "0",
            "topicRunningHash": "",
            "totalSupply": "0",
            "scheduledTransactionId": "",
            "serials": [],
            "duplicates": [],
            "children": []
        }
    }
    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    type SmartContractFunctionParameter = {
        type: 'string' | 'bytes' | 'boolean' | 'int' | 'uint';
        value: string | number | boolean | Uint8Array;
    }
    
    const getSmartContractFunctionAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/getSmartContractFunction',
            params: {
              network: 'testnet',
              contractId: '0.0.4409710',
              functionName: 'getGreeting',
              functionParams?, // Optional param - type: SmartContractFunctionParameter[]
              gas?, // Optional param - type: number
              senderAccountId?: // Optional param - type: string
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "result": {
            "contractId": "0.0.4409710",
            "bytes": "000000000000000000000000000000000000000000000000000000000000d903",
            "bloom": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
            "gasUsed": 800000,
            "errorMessage": "",
            "logs": "",
            "signerNonce": null,
            "evmAddress": "",
            "gas": -1,
            "amount": -1,
            "contractNonces": ""
        }
    }
    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    const updateSmartContractAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/updateSmartContract',
            params: {
              network: 'testnet',
              contractId: '0.0.4409710',
              adminKey?, // Optional param - type: string
              contractMemo?, // Optional param - type: string
              expirationTime?, // Optional param - type: string
              maxAutomaticTokenAssociations?, // Optional param - type: number
              stakedAccountId?, // Optional param - type: string
              stakedNodeId?, // Optional param - type: number
              declineStakingReward?, // Optional param - type: boolean
              autoRenewPeriod?, // Optional param - type: number
              autoRenewAccountId?, // Optional param - type: string
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "receipt": {
            "status": "SUCCESS",
            "accountId": "",
            "fileId": "",
            "contractId": "0.0.4409710",
            "topicId": "",
            "tokenId": "",
            "scheduleId": "",
            "exchangeRate": {
                "hbars": 30000,
                "cents": 358240,
                "expirationTime": "Tue, 04 Jun 2024 16:00:00 GMT",
                "exchangeRateInCents": 11.941333333333333
            },
            "topicSequenceNumber": "0",
            "topicRunningHash": "",
            "totalSupply": "0",
            "scheduledTransactionId": "",
            "serials": [],
            "duplicates": [],
            "children": []
        }
    }
    • If you don't pass in adminKey,you will not be able modify the contract fields

    hashtag
    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. Parses the arguments that were passed such as the gas, bytecode, adminKey, etc.

    3. Calls the Hedera SDK Create Smart Contract APIarrow-up-right to create a new smart contract instance. This API uses ContractCreateFlow() API to create the file storing the bytecode and contract in a single step so you do not need to do anything other than compile your Solidity code and pass the bytecode to the API. The constructor will be executed using the given amount of gas, and any unspent gas will be refunded to the paying account.

    4. Returns the transaction receipt as response

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit https://pulse.tuum.tech/arrow-up-right to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the FAQs section to learn about what you may be missing. You need to install Metamaskarrow-up-right in your browser for the live demo to work.

    • To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at .

    • You can also check out the to learn how each API works.

    documentation
    template application github repositoryarrow-up-right
    API reference
    template application github repositoryarrow-up-right
    API reference
    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    type SmartContractFunctionParameter = {
        type: 'string' | 'bytes' | 'boolean' | 'int' | 'uint';
        value: string | number | boolean | Uint8Array;
    }
    
    const createTokenAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/createSmartContract',
            params: {
              network: 'testnet',
              gas: 100000,
              bytecode: "6080604052...0008190033",
              initialBalance?, // Optional param - type: number
              adminKey?, // Optional param - type: string
              constructorParameters?: // Optional param - type: SmartContractFunctionParameter[]
              contractMemo?, // Optional param - type: string
              stakedNodeId?, // Optional param - type: number
              stakedAccountId?, // Optional param - type: string
              declineStakingReward?, // Optional param - type: boolean
              autoRenewPeriod?, // Optional param - type: number
              maxAutomaticTokenAssociations?, // Optional param - type: number
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "receipt": {
            "status": "SUCCESS",
            "accountId": "",
            "fileId": "",
            "contractId": "0.0.4409710",
            "topicId": "",
            "tokenId": "",
            "scheduleId": "",
            "exchangeRate": {
                "hbars": 30000,
                "cents": 358240,
                "expirationTime": "Thu, 25 Apr 2024 19:00:00 GMT",
                "exchangeRateInCents": 11.941333333333333
            },
            "topicSequenceNumber": "0",
            "topicRunningHash": "",
            "totalSupply": "0",
            "scheduledTransactionId": "",
            "serials": [],
            "duplicates": [],
            "children": []
        }
    }
    template application github repositoryarrow-up-right
    API reference

    hscs/getSmartContractBytecode

    hashtag
    How to call the API from an app

    Hedera Wallet Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Hedera Wallet Snap using a non-metamask(external) account, refer to this documentation.

    Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:

    hashtag
    What the API does

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

    2. Parses the arguments that were passed such as the gas, bytecode, adminKey, etc.

    3. Calls the to query the network that returns the bytecode for a smart contract instance.

    An example response:

    hashtag
    Live Demo on CodePen

    circle-info
    • Note: Visit to activate your hedera account before you interact with the demo

    • If you're getting any errors with the live demo, make sure you go through the section to learn about what you may be missing. You need to install in your browser for the live demo to work.

    const snapId = `npm:@hashgraph/hedera-wallet-snap`
    
    const getSmartContractBytecodeAPI = async () => {
      const externalAccountParams = {
        externalAccount: {
          accountIdOrEvmAddress: '0.0.12345',
          curve: 'ED25519'
        }
      }
    
      await window.ethereum.request({
        method: 'wallet_invokeSnap',
        params: {
          snapId,
          request: {
            method: 'hscs/getSmartContractBytecode',
            params: {
              network: 'testnet',
              contractId: '0.0.4409710'
              /* 
                Uncomment the below line if you want to connect 
                to a non-metamask account
              */
              // ...externalAccountParams
            }
          }
        }
      })
    }
    Returns the transaction receipt as response

    To ease the integration of Hedera Wallet Snap on an application, we have created a template web application that you can run locally and check out the code in its entirety to learn how you can integrate and interact with various APIs exposed by Hedera Wallet Snap. Check out the full source code at .

  • You can also check out the to learn how each API works.

  • snap account
    Hedera SDK Get Smart Contract Bytecode APIarrow-up-right
    https://pulse.tuum.tech/arrow-up-right
    FAQs
    Metamaskarrow-up-right
    {
        "currentAccount": {
            "metamaskEvmAddress": "0x0b3628d1b838993b5fceec8b2a26502e7a8e5241",
            "externalEvmAddress": "",
            "hederaAccountId": "0.0.3581604",
            "hederaEvmAddress": "0xca53f9c93d30e0b7212d67901e5a24fb090d542b",
            "publicKey": "0x0206022cea4c6dd6d2e7263b8802253971de922f5380661d97cba82dee66f57ad6",
            "balance": {
                "hbars": 104.67332072,
                "timestamp": "Thu, 25 Apr 2024 17:54:55 GMT",
                "tokens": {}
            },
            "network": "testnet",
            "mirrorNodeUrl": "https://testnet.mirrornode.hedera.com"
        },
        "bytecode": "608060405234.....6c634300080b0033"
    }
    template application github repositoryarrow-up-right
    API reference