i ask because i want to hardcode the isCanister to 10 and isUser to not 10
From the spec:
there is intentionally no mechanism to tell canister ids and user ids apart
However, for now canister principals will always be 10B in size. But in theory it could change at any time. Also, if you rely on the byte amount you will detect subnet IDs as user. I have not checked, but if you look at the last byte maybe you can differentiate properly