I have created a simple contract with Truffle to test things out. I am using testrpc with this. pragma solidity ^0.4.11; contract HelloSystem { address owner; function HelloSystem() { owner = msg.sender; } function remove() { if (msg.sender == owner) { selfdestruct(owner); } } } After deploying this contract, though I can call `remove` from truffle console, I am not able to call the owner which is set at the initiation of contract. Have tried: truffle(development)> HelloSystem.deployed().then(function(instance){HS = HelloSystem.at(instance.address)}) HS.owner.call().then(console.log) HS.owner HS.owner.call() I am very well able to call remove function on my contract and remove it. But owner is not working. I am sure I am missing something simple, if any one can point it out, would be much wow many thanks. I created another simple contract with numeric uint balance and made it public. contract helloWorld { uint public balance; function helloWorld() { balance = 1000; } } Now, my call to balance works fine. truffle(development)> helloWorld.deployed().then(function(instance){HW = helloWorld.at(instance.address)}) truffle(development)> HW.balance { [Function] call: [Function], sendTransaction: [Function], request: [Function: bound ], estimateGas: [Function] } truffle(development)> Would this be because of the declaration public/ private? **Update** Inline with my argument of public declaration, I tried declaring `address public owner` still doesn't work. Hence open to your guys. Please help.