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
}
}
}
})
}{
"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
}
}
}
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
}
}
}
})
}

{
"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": []
}
}

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": []
}
}
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
}
}
}
})
}{
"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"
}