Every transaction sent to the network must include one or more signatures from a valid key pair.
Multiple signatures allow for multi-transfers, trades, minting, and crafting where more than one wallet or token is involved in the transaction. With discrete accounts, more than one signature may be required to control the account. In governance, multiple stakeholders can approve a vote.
Transfers of Paratokens can be simple or complex, including the ability to include multiple senders and recipients.
To perform a trade, two or more accounts could sign a transfer transaction.
Transaction Fee Delegation
A transaction can include a fee payer signature, which allows someone else to sign responsibility for fees before broadcasting.
This is hugely beneficial for companies and creators who want to subsidize transaction costs for their users.
Discrete Accounts are unique addresses that can be created and operated on the parachain. They do not have an associated private key.
A discrete account’s address can be used in any transaction, if that transaction is also signed by a wallet that is allowed to use the discrete account.
A discrete account can be configured with various permissions and roles:
- Can set operators, owners and admins
- Can set operators
- Can sign for transactions
More than one signature may be required per role if multisig security is needed; for example, these accounts can be used by a company’s stakeholders to securely manage its assets.
Fuel Tanks are special discrete accounts that are used purely for transaction fees. Developers can choose to subsidize costs for their customers by depositing EFI tokens to a Fuel Tank they control. EFI tokens deposited to a Fuel Tank cannot be withdrawn.
A fuel tank can whitelist specific tokens, tags, transaction types or users that will be permitted to use it.
The fuel tank’s ID may be specified in any transaction. The chosen fuel tank will cover transaction costs if its requirements are met. Any remaining costs will be paid by the Fee Payer.
A fuel tank can be configured with owners, admins and operators who may tap into it for transaction fees.
Scopes are added to a fuel tank to fine-tune its permissions for specific operators, tokens, time limits and value limits.
Crafting allows existing tokens to be modified, or new tokens to be created by using a Recipe.
A recipe is a signed message that is generated completely off-chain. Anyone who has a copy of the recipe will be able to execute it on Efinity. The system is useful for gamifying collectibles with minimal effort. Redemption of multiple “common” tokens for a rare token is easy to achieve and may allow for some simple game mechanics.
A recipe may require ownership of certain tokens (for example, a hammer and an anvil), and it can be coded to perform a number of actions: minting, burning, melting or transferring.
The recipe creator may limit the number of times a recipe can be used, or even blacklist a recipe ID directly.
Tags can be used to group related tokens (for example, covering transaction fees for an entire game’s token collection).
Efinity Swap is an automated market-maker which allows Paratokens to be converted to and from EFI. Liquidity is provided by all market bids as well as the Efinity Treasury Pool. Paratokens provide their own liquidity with ask orders.
Paratokens that have a minimum threshold of liquidity are eligible for auto-conversion and can be swapped for transaction fees or orders on the marketplace.
As an example, the Enjin Coin token is expected to have the highest liquidity at launch. It will be automatically priced by the market against EFI and can be used directly in any transaction. ENJ will automatically be converted to EFI using Efinity Swap when needed.