Guides/EVM/Precompiles

Leasing

Reference for the deployed LeasingPrecompile.

View as Markdown
PropertyValue
Rust implementationLeasingPrecompile
Solidity interfaceILeasing
Address0x000000000000000000000000000000000000080a
StatusDeployed

Views

getLease(uint32)
getContributorShare(uint32,bytes32)
getLeaseIdForSubnet(uint16)
getNextLeaseId()
getAccumulatedLeaseDividends(uint32)

Operations

createLeaseCrowdloan(uint64,uint64,uint64,uint32,uint8,bool,uint32)
terminateLease(uint32,bytes32)

Both operations are payable.

Before handing over the residual stake, final settlement allocates every contributor's share of accumulated dividends to that contributor. Funded final payments include dust below the ordinary stake-transfer minimum; they are not written off or reassigned to the beneficiary.

The first successful terminateLease hands ownership to the beneficiary and removes the beneficiary proxy. If genuine unpaid debts remain, the lease record stays available for recovery. Later calls and the ended-lease hook settle those debts without taking ownership away from a conviction winner or removing the proxy again. Old partially terminated records are recognized as well.

Once contributors are fully settled, the synthetic account's remaining stake and its lock follow the beneficiary, including dust whose current TAO valuation rounds to zero. Lock aggregates follow the same owner/hotkey transition rules as conviction-based ownership changes. Ordinary user transfers retain their minimum. Unfunded debts or real lock conflicts still preserve the debt and its backing for a later retry.

Added operation

FunctionSource extrinsic
startCallSubtensorModule.start_call

startCall accepts a signed subnet owner. The Root-only start-call delay configuration is not exposed.

Source: leasing.sol