code: function handleNewSharedAddress(body, callbacks){
  	if (!ValidationUtils.isArrayOfLength(body.definition, 2))
  		return callbacks.ifError("invalid definition");
  	if (typeof body.signers !== "object" || Object.keys(body.signers).length === 0)
  		return callbacks.ifError("invalid signers");
  	if (body.address !== objectHash.getChash160(body.definition))
  		return callbacks.ifError("definition doesn't match its c-hash");
  	for (var signing_path in body.signers){
  		var signerInfo = body.signers[signing_path];
  		if (signerInfo.address && !ValidationUtils.isValidAddress(signerInfo.address))
  			return callbacks.ifError("invalid member address: "+signerInfo.address);
  	}
  	determineIfIncludesMe(body.signers, function(err){
  		if (err)
  			return callbacks.ifError(err);
  		validateAddressDefinition(body.definition, function(err){
  			if (err)
  				return callbacks.ifError(err);
  			addNewSharedAddress(body.address, body.definition, body.signers, body.forwarded, callbacks.ifOk);
  		});
  	});
  }
docs: {address: "BASE32", definition: [...], signers: {...}}