Skip to content

[Feat]: Charge deposits only, so no registration or transfer fee is stuck in the escrow #337

Open

Description

@re-gius

Component

Registration

Priority

P1

Summary

Two fees go into DotnsNameEscrow.protocolFees, which nothing can withdraw, burn or sweep. Only an upgrade could move the money, and on Paseo it already holds 20 PAS.

  • Cross-payer registration (depositProtocolFee): when someone else pays for registration.owner, the price becomes a fee and the owner's position gets 0. Registering under your own key and then transferring avoids it, so it only hits honest sponsors.
  • Transfer fee (chargeTransferFee, priced by PopRules.transferFloor): the name's price, charged when the receiver's tier is too low to register a name of that length (reach) or is lower than the sender's tier (downgrade).
    • Downgrade mostly charges owners moving names of nine characters or more to their own multisig, hardware wallet or contract, none of which has personhood.
    • Reach puts a price on moving a six-to-eight character name to an account without personhood, but doesn't prevent it.

MainNet isn't deployed yet, so this can be fixed before any funds are at stake.

Proposal

  • Registration: the price is always a refundable deposit in the owner's position, whoever pays.
  • Names of nine characters or more: transfer for free.
  • Granted names: transfer freely so holders can rotate keys. The registrar marks them at mint, as it does soulbound names.

Acceptance criteria

  • A cross-payer registration seeds the owner a refundable deposit.
  • Transfers of names of nine characters or more, and of granted names, cost nothing.
  • The README economics section and dotns-sdk describe the new model.

Activity

  1. self-assigned this
    on Oct 13, 2026
  2. re-gius commented on Oct 13, 2026

    @re-gius
    CollaboratorAuthor

    after checking with Gav, transfers are now free for all "transferrable" names, granted names included. Everything for this issue is covered in #338

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions