waves_logo Docs
  • Why Waves
    Why Waves
  • Waves Basics
    Waves Basics
  • Account
    • Creating Account
      Creating Account
    • Address
      Address
    • Account Balance
      Account Balance
    • Account Data Storage
      Account Data Storage
    • Alias
      Alias
    • dApp and Smart Account
      dApp and Smart Account
    Account
  • Token (Asset)
    • Non-Fungible Token
      Non-Fungible Token
    • Smart Asset
      Smart Asset
    • Token ID
      Token ID
    • WAVES
      WAVES
    Token (Asset)
  • Transaction
    • Transaction Fee
      • Sponsored Fee
        Sponsored Fee
      Transaction Fee
    • Signature and Proofs
      Signature and Proofs
    • Transaction Types
      • Burn Transaction
        Burn Transaction
      • Create Alias Transaction
        Create Alias Transaction
      • Data Transaction
        Data Transaction
      • Exchange Transaction
        • Order
          Order
        Exchange Transaction
      • Genesis Transaction
        Genesis Transaction
      • Invoke Script Transaction
        Invoke Script Transaction
      • Issue Transaction
        Issue Transaction
      • Lease Cancel Transaction
        Lease Cancel Transaction
      • Lease Transaction
        Lease Transaction
      • Mass Transfer Transaction
        Mass Transfer Transaction
      • Reissue Transaction
        Reissue Transaction
      • Set Asset Script Transaction
        Set Asset Script Transaction
      • Set Script Transaction
        Set Script Transaction
      • Sponsor Fee Transaction
        Sponsor Fee Transaction
      • Transfer Transaction
        Transfer Transaction
      • Update Asset Info Transaction
        Update Asset Info Transaction
      • Ethereum-like Transaction
        Ethereum-like Transaction
      Transaction Types
    • Transaction Validation
      Transaction Validation
    Transaction
  • Block
    • Transactions Root Hash
      Transactions Root Hash
    • Genesis Block
      Genesis Block
    Block
  • Node
    • Leasing
      Leasing
    • Generator’s Income
      Generator’s Income
    • Monetary Policy
      Monetary Policy
    Node
  • Mainnet, Testnet, Stagenet
    Mainnet, Testnet, Stagenet
  • Unit Zero
    Unit Zero
  • Oracle
    Oracle
  • Protocols & Data formats
    • Cryptographic Practical Details
      Cryptographic Practical Details
    • Leased Proof of Stake
      Leased Proof of Stake
    • Waves-NG Solution
      Waves-NG Solution
    • Waves-NG Protocol
      Waves-NG Protocol
    • Waves 1.5
      Waves 1.5
    • Blockchain Data Types
      Blockchain Data Types
    • Binary Format
      • Address Binary Format
        Address Binary Format
      • Alias Binary Format
        Alias Binary Format
      • Block Binary Format
        Block Binary Format
      • Network Message Binary Format
        • Block Message Binary Format
          Block Message Binary Format
        • Checkpoint Message Binary Format
          Checkpoint Message Binary Format
        • Get Block Message Binary Format
          Get Block Message Binary Format
        • Get Peers Message Binary Format
          Get Peers Message Binary Format
        • Get Signatures Message Binary Format
          Get Signatures Message Binary Format
        • Handshake Message Binary Format
          Handshake Message Binary Format
        • Peers Message Binary Format
          Peers Message Binary Format
        • Score Message Binary Format
          Score Message Binary Format
        • Signatures Message Binary Format
          Signatures Message Binary Format
        • Transaction Message Message Binary Format
          Transaction Message Message Binary Format
        Network Message Binary Format
      • Order Binary Format
        Order Binary Format
      • Transaction Binary Format
        • Burn Transaction Binary Format
          Burn Transaction Binary Format
        • Create Alias Transaction Binary Format
          Create Alias Transaction Binary Format
        • Data Transaction Binary Format
          Data Transaction Binary Format
        • Exchange Transaction Binary Format
          Exchange Transaction Binary Format
        • Genesis Transaction Binary Format
          Genesis Transaction Binary Format
        • Invoke Script Transaction Binary Format
          Invoke Script Transaction Binary Format
        • Issue Transaction Binary Format
          Issue Transaction Binary Format
        • Lease Cancel Transaction Binary Format
          Lease Cancel Transaction Binary Format
        • Lease Transaction Binary Format
          Lease Transaction Binary Format
        • Mass Transfer Transaction Binary Format
          Mass Transfer Transaction Binary Format
        • Reissue Transaction Binary Format
          Reissue Transaction Binary Format
        • Set Asset Script Transaction Binary Format
          Set Asset Script Transaction Binary Format
        • Set Script Transaction Binary Format
          Set Script Transaction Binary Format
        • Sponsor Fee Transaction Binary Format
          Sponsor Fee Transaction Binary Format
        • Transfer Transaction Binary Format
          Transfer Transaction Binary Format
        • Update Asset Info Transaction Binary Format
          Update Asset Info Transaction Binary Format
        • Ethereum-like Transaction Binary Format
          Ethereum-like Transaction Binary Format
        Transaction Binary Format
      • Transaction Proof Binary Format
        Transaction Proof Binary Format
      Binary Format
    • Validation Rules
      Validation Rules
    Protocols & Data formats
  • Glossary
    Glossary
      • English
      • Русский
      On this page
        • Sponsored asset
        • How It Works
        • How to Enable Sponsorship
        • How to Disable Sponsorship
        • Restrictions
        • Discussion
      waves_logo Docs

          # Sponsored Fee

          Users of Waves-based apps should pay a fee for each transaction. This is the entry threshold for new users. Sometimes users don't know anything about WAVES or don't understand how to get WAVES or don't want to spend money. Sponsorship enables launching apps that do not require WAVES from users.

          # Sponsored asset

          An account that issued an asset can enable sponsorship, that is, allow all users to pay a fee in this asset for Invoke Script transactions and Transfer transactions. The sponsor can distribute the sponsored asset among app users.

          # How It Works

          After enabling sponsorship, if the requirements described in the Restrictions section are met, the sponsorship works as follows:

          1. A user broadcasts a transaction and specifies a fee in the sponsored asset.
          2. The sponsor receives the fee in the sponsored asset from the user's account.
          3. Block generators receive the fee in WAVES from the sponsor's account (in accordance with the Waves-NG protocol, the fee is distributed between the current block generator and the next block generator in a ratio of 40/60).

          The script on the sponsor's account is not executed and does not affect the sponsorship because the transaction is sent from the user's account.

          The fee in WAVES charged to the sponsor is proportional to the fee specified by the transaction sender:

          feeInWaves = feeInSponsoredAsset × 0,001 / minSponsoredAssetFee

          minSponsoredAssetFee is the amount of sponsored asset equivalent to 0.001 WAVES. The sponsor sets this value when enabling sponsorship.

          For example, if the sponsor sets 3 tokens = 0.001 WAVES, then the minimum fee for an Invoke Script transaction is 15 tokens, which corresponds to 0.005 WAVES.

          ⚠️ Please note:

          • The user can use the sponsored asset to pay for transactions that are not related to a certain app.
          • The user can specify any amount of fee, such as the one significantly exceeding the minimum.

          # How to Enable Sponsorship

          To enable sponsorship, you have to create a Sponsor Fee transaction with minSponsoredAssetFee specified in it. Example transaction

          In the binary and JSON representation of the transaction, the value of minSponsoredAssetFee is specified in the minimum fraction (“cent”) of the sponsored asset.

          There are the following options to create the transaction:

          • In the WX Network app developed by the third-party team from the community. See the Sponsored Transaction article in the WX Network Help Center.
          • Using client libraries. See also the Creating and broadcasting transactions to the blockchain article.

          The fee for this type of transaction 0.001 WAVES. (Before activation of feature #15 “Ride V4, VRF, Protobuf, Failed transactions” it was 1 WAVES.)

          # How to Disable Sponsorship

          To disable sponsorship, you have to create a sponsor fee transaction in which minSponsoredAssetFee is null.

          # Restrictions

          • Only the issuer of the asset can be a sponsor.
          • Smart asset cannot be a sponsored asset.
          • A fee in the sponsored asset can only be specified for for Invoke Script transactions and Transfer transactions.
          • The sponsor's WAVES balance must be sufficient to pay the equivalent of the commission specified in the transaction.

          Some apps disable specifying a transaction fee in the sponsored asset if sponsor's balance is less than 1.005 WAVES.

          # Discussion

          Improvement of sponsorship is discussed at the Waves community forum in the WEP-2 Customizable Sponsorship section.

          Transaction Fee
          Signature and Proofs
          Transaction Fee
          Signature and Proofs