I am using 

```
truffle migrate --reset --compile-all

```

to deploy the contract to local network

but in order to use ***new web3.eth.Contract(jsonInterface[, address][, options])***, i should be able to know the contract address, 

so how could know the address which truffle is deploying?
['https://ethereum.stackexchange.com/questions/34570', 'https://ethereum.stackexchange.com', 'https://ethereum.stackexchange.com/users/22913/']
If the contract is being deployed you can obviously read it from the log. What if the contract has deployed but you did not take a record of it? There are a few ways to do it:

```
1. Using etherscan (or Rinkeby scan, Ropsten scan etc..) and search your wallet address used for deployment of the contract. But what if I don't recall the wallet address used? You can get it from truffle.js (or truffle-config.js) in your project folder. Or 
2. You can reconnect to the deployed contract using truffle and retrieve the address:  
$truffle console --network rinkeby
truffle(rinkeby)>myToken = await MyToken.deployed()
truffle(rinkeby)>await myToken.address

```

This will do it! Remember to replace "MyToken" with your token's contract name, and replace "rinkeby" with your network name such as: ropsten etc..
You can find the contract address in your build .json files. For example build/contracts/deployedContract.json Just search the file for address.

If you deployed the contract and lost the address/build.json you can simply retrieve it by truffle commands. You just need the name of the deployed contract.

For example, I deployed **NewContract** but lost his address.

```
truffle console --network private

truffle(private)> 

truffle(private)> let contract = await NewContract.deployed()

truffle(private)> contract.address
'0xb0B8956f1B95a562bC7CF3e77Ec8BeA712321315'

```

And that is it, you have your address