An expiry of zero means no expiry. A nonzero expiry is a Unix timestamp evaluated at execution. Stored grants and events contain the exact granted bits; authority checks apply the implications above.
Administration
UseauthorizeAccountSigner and revokeAccountSigner with account: rootOwner. Signed variants use the AccountCore version-1 EIP-712 domain and the current owner-address authorization nonce. Anyone may submit a valid signature, but the authorizer must still have authority when it executes.
Each successful grant or revocation advances the root epoch. Read it for any family member with getAccountAuthorizationEpoch({ accountId }). For signer administration, getSignerAuthorizationNonce({ account: rootOwner }) returns the same root state, or zero before registration.
Creating a child does not change the epoch. Reauthorizing a revoked signer does not revive its previous intents or stored triggers.
Check live authority
TRADE against the actual target root or child ID. For a delegated signer, child-ID queries mask out non-trading permissions; check ADMIN, WITHDRAW, and INTERNAL_TRANSFER against the root ID. Internal transfers and signer administration also authorize against the root. Check one permission bit at a time. A signed message, Relay JWT, or installed EIP-7702 delegation is not proof of live AccountCore permission.