Docs

wallet/getcontractinfo - Get Contract Details

Get detailed information about a TRON smart contract including bytecode, ABI, and energy consumption via Dwellir's RPC endpoint.

Get detailed information about a deployed smart contract.

Endpoint

Text
POST /wallet/getcontractinfo

Implementation Examples

ABI Entry Types

Function Entry

JSON
{
  "name": "functionName",
  "inputs": [...],
  "outputs": [...],
  "type": "Function",
  "stateMutability": "view|pure|nonpayable|payable"
}

Event Entry

JSON
{
  "name": "EventName",
  "inputs": [
    {
      "indexed": true,
      "name": "param1",
      "type": "address"
    }
  ],
  "type": "Event"
}

Constructor Entry

JSON
{
  "inputs": [...],
  "type": "Constructor",
  "stateMutability": "nonpayable"
}

Contract Verification

JavaScript
// Verify contract source code matches deployed bytecode
async function verifyContract(address, sourceCode, compilerVersion) {
  // Get deployed contract info
  const response = await fetch(`${API_URL}/wallet/getcontractinfo`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ value: address, visible: true })
  });
  
  const contract = await response.json();
  const deployedBytecode = contract.bytecode;
  
  // Compile source code (pseudo-code)
  const compiledBytecode = await compileContract(sourceCode, compilerVersion);
  
  // Compare bytecodes (excluding metadata)
  const verified = compareBytecode(deployedBytecode, compiledBytecode);
  
  return {
    verified,
    contractName: contract.contract_name,
    abi: contract.abi,
    creator: contract.origin_address
  };
}

Best Practices

1. Cache Contract Info

  • ABI doesn't change after deployment
  • Cache to reduce API calls
  • Update cache only when needed

2. Validate Contracts

  • Check bytecode exists
  • Verify ABI structure
  • Confirm expected functions present

3. Energy Monitoring

  • Track consumed_energy growth
  • Monitor for unusual consumption
  • Alert on high energy usage

Common Errors

ErrorDescriptionSolution
Contract does not existInvalid contract addressVerify address is correct
Not a smart contract addressAddress is not a contractCheck address type first
class org.tron.core.exception.BadItemExceptionMalformed requestCheck parameter format

Use Cases

  • Contract Verification: Verify deployed contract matches source
  • ABI Extraction: Get contract interface for interaction
  • DApp Integration: Load contract details dynamically
  • Analytics: Track contract usage and energy consumption
  • Security Auditing: Analyze contract bytecode and functions