:warning: Deprecated. Find new registrar here.

The Deed contract has two main features:

  • Store RIF tokens locked on a bid
  • Handle the annual rent payment.

Deed contract holds RIF tokens in exchange for a domain ownership. The Deed contract is controlled by the Registrar and is the only one capable to sends tokens back to the owner.

Submitting a bid creates a Deed contract which holds the funds and stores information related to the owner and the domain expiration. Have a look at the Registrar bid submission:

// Creates a new hash contract with the owner
TokenDeed createdBid = new TokenDeed(_from, _tokenQuantity, tokenContract);
require(tokenContract.transfer(createdBid, _tokenQuantity));
sealedBids[_from][_sealedBid] = createdBid;

Once bidded, you can query for a particular bid's Deed:

var deedAddress = registrar.sealedBids(address, sealedBid)
var deedInstante = web3.contract(deedAbi)
var deed =

If we'd like to know info about nakamoto.rsk's deed:

var deedAddress = registrar.entries(web3.sha3('nakamoto'))[1]
var deedInstante = web3.contract(deedAbi)
var deed =


There are only 3 methods that can be accessed directly. Everything else are accessible only by the Registrar.


Returns whether the current date falls within the Deed's rent payment period.


function canPayRent() public view returns(bool)


Returns whether the Deed is expired or not.


function expired() public view returns(bool)


Close an expired Deed. No funds are returned.


function closeExpiredDeed() public onlyActive

Receive updates

Get the latest updates from the Rootstock ecosystem