Skip to main content

Transfer Usership

Transfer the active usership (rental tenant right) of an Entity resource to a recipient wallet address. Only the current active renter is authorized to execute this instruction. Only temporary lease privileges are transferred; full entity ownership stays unchanged.

open-token entity transfer-usership --help

Synopsis

open-token entity transfer-usership <Name> <To>

Arguments

ArgumentTypeRequiredDescription
<Name>StringYesTarget entity resource name (e.g. open://google.com, open://app.google.com). Must reference an existing on‑chain entity account with an active non‑expired usership lease, supports multi‑level dot‑separated hierarchy. Corresponding human‑readable URI: open://google.com, open://app.google.com.
<To>PubkeyYesRecipient Openverse public‑key address receiving the usership right. Must be a valid wallet public‑key.

Behaviour

  • Transaction signer must match stored entity renter public key; returns RenterMismatch on authorization failure.
  • Validates target entity exists and ownership term is not expired (NameExpired).
  • Validates parent Ecosystem namespace exists on‑chain (ParentNotCreated).
  • Validates an active non‑expired rent lease exists (RentExpired).
  • Overwrites stored renter field with recipient <To> public‑key.
  • Lease expiry timestamp remains unchanged; new renter inherits all remaining lease duration.
  • Does not modify entity owner, meta, body, ownership expiry, rent‑ask / sale‑ask offer configurations.
  • No token payment occurs; this is a free transfer of temporary usership privilege.
  • Entity legal owner remains unchanged for the whole lease lifecycle.
  • Logical resolution note: Even with valid transferred usership, entity cannot resolve via open:// scheme if parent Ecosystem is expired.

Constraints & Validation Rules

  1. RenterMismatch: Transaction signer is not the current renter of this entity.
  2. RentExpired: No active valid usership lease exists; transfer prohibited.
  3. NameExpired: Underlying entity ownership registration expired; rent‑related operations unavailable.
  4. ParentNotCreated: Parent Ecosystem namespace does not exist on‑chain.
  5. MaxEntityLevelIsFour: Entity name hierarchy depth exceeds program‑defined maximum level.
  6. NameTooLong / NameEmpty: Invalid entity name input.
  7. InvalidPubkey: <To> argument is not a valid Openverse public‑key.

Usage Example

Transfer usership of entity open://google.com to recipient address 7xKZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:

open-token entity transfer-usership open://google.com 7xKZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx