Skip to main content

Transfer Ownership

Transfer full ownership of an existing Entity resource to a recipient wallet address. Only the current Entity owner is authorized to execute this instruction. This is a direct manual transfer and does not involve token payment; unrelated to sale‑offer workflow.

open-token entity transfer-ownership --help

Synopsis

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

Arguments

ArgumentTypeRequiredDescription
<Name>StringYesTarget entity resource name (e.g. open://google.com, open://app.google.com). Must reference an existing non‑expired on‑chain entity account, may contain dot separators for multi‑level hierarchy. Corresponding human‑readable URI: open://google.com, open://app.google.com.
<To>PubkeyYesRecipient Openverse public key address that will receive full entity ownership. Must be a valid wallet public‑key.

Behaviour

  • Transaction signer must match stored Entity owner public key; returns OwnerMismatch on authorization failure.
  • Validates target entity exists and is not expired (NameExpired).
  • Validates parent Ecosystem namespace exists on‑chain (ParentNotCreated).
  • Overwrites the stored entity owner field with the recipient <To> public‑key.
  • Any active usership lease remains completely unchanged after ownership transfer: existing renter retains usership rights until rent expiry.
  • Does not modify entity Meta, Body, ownership expiry timestamp, sale‑offer configuration, or rent‑offer configuration.
  • The sale / rent offer flags and pricing values persist; the new owner may later adjust them via sale‑ask / rent‑ask.
  • No tokens are exchanged in this operation; this is a free administrative ownership hand‑off.
  • Logical resolution note: Even after successful ownership transfer, the entity cannot be resolved via open:// scheme if its parent Ecosystem is expired.

Constraints & Validation Rules

  1. OwnerMismatch: Transaction signer is not the Entity owner.
  2. NameExpired: Entity ownership registration is expired; ownership transfer prohibited.
  3. ParentNotCreated: Parent Ecosystem namespace does not exist on‑chain.
  4. MaxEntityLevelIsFour: Entity name hierarchy depth exceeds program‑defined maximum level.
  5. NameTooLong / NameEmpty: Invalid entity name input.
  6. InvalidPubkey: <To> argument is not a valid Openverse public‑key.

Usage Example

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

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