Time-bound delegation logic

Each session key has an expiry timestamp encoded in the signed delegation payload:

{
  "delegate": "0x1234...",
  "validUntil": 1718890000,
  "scope": {
    "contracts": ["0xExecutor"],
    "methods": ["0x09..."]
  }
}

Smart contract enforces:

require(block.timestamp < sessions[msg.sender].validUntil, "Session expired");

This ensures all sessions are finite and revocable.

Last updated