Signless Transactions
What are Signless Transactions?
Signless transactions allow users to perform common actions without signing each transaction, offerong a more user-friendly experience, especially for repetitive and routine actions such as trading.
Signless transactions can be activated in your profile on Demex, Carbon's frontend UI.
This guide explains signless transactions and a comprehensive list of actions that can be performed without the need for traditional signature authentication.
Technical Overview of Signless Transactions
The implementation of signless transactions is made possible through two key modules of the Cosmos SDK: authz
and feegrant
.
Authz Module: This module allows a user (the granter) to grant another user (the grantee) the authorization to execute transactions on their behalf. This is facilitated through the
MsgGrant
transaction, which specifies the types of actions the grantee is allowed to perform. When the grantee executes an authorized transaction, it is done using theMsgExec
command, effectively acting under the granter's permissions without needing the granter to sign the transaction.FeeGrant Module: Alongside the
authz
module, thefeegrant
module enables the grantee to utilize the granter's account balances to pay for transaction fees. This means that the grantee can perform transactions without needing their own balance for fees, as the granter's balance can be used instead.
List of Supported Signless Transactions
Carbon supports a variety of signless transactions across different modules. Below is the list of actions that can be executed signlessly:
Alliance Transactions
Delegate Alliance Tokens (
TxTypes.MsgAllianceDelegate
)Undelegate Alliance Tokens (
TxTypes.MsgAllianceUndelegate
)Redelegate Alliance Tokens (
TxTypes.MsgAllianceRedelegate
)Claim Alliance Delegation Rewards (
TxTypes.MsgAllianceClaimDelegationRewards
)Withdraw Delegator Rewards (
TxTypes.MsgWithdrawDelegatorReward
)
Collateralized Debt Position (CDP) Transactions
Supply Asset (
TxTypes.MsgSupplyAsset
)Withdraw Asset (
TxTypes.MsgWithdrawAsset
)Lock Collateral (
TxTypes.MsgLockCollateral
)Unlock Collateral (
TxTypes.MsgUnlockCollateral
)Borrow Asset (
TxTypes.MsgBorrowAsset
)Supply Asset and Lock Collateral (
TxTypes.MsgSupplyAssetAndLockCollateral
)Unlock Collateral and Withdraw Asset (
TxTypes.MsgUnlockCollateralAndWithdrawAsset
)Liquidate Collateral (
TxTypes.MsgLiquidateCollateral
)Liquidate Collateral with CDP Tokens (
TxTypes.MsgLiquidateCollateralWithCdpTokens
)Liquidate Collateral with Other Collateral (
TxTypes.MsgLiquidateCollateralWithCollateral
)Liquidate Collateral with Stablecoin (
TxTypes.MsgLiquidateCollateralWithStablecoin
)Repay Asset (
TxTypes.MsgRepayAsset
)Repay Asset with CDP Tokens (
TxTypes.MsgRepayAssetWithCdpTokens
)Repay Asset with Collateral (
TxTypes.MsgRepayAssetWithCollateral
)Mint Stablecoin (
TxTypes.MsgMintStablecoin
)Return Stablecoin (
TxTypes.MsgReturnStablecoin
)Claim CDP Rewards (
TxTypes.MsgClaimRewards
)Set Account in Efficiency Mode (EMode) (
TxTypes.MsgSetAccountEMode
)Remove Account from Efficiency Mode (
TxTypes.MsgRemoveAccountEMode
)
Token Management Transactions
Deposit to Token Group (
TxTypes.MsgDepositToGroup
)Withdraw from Token Group (
TxTypes.MsgWithdrawFromGroup
)Create a New Token (
TxTypes.MsgCreateToken
)
Leverage Transactions
Set Leverage for Trading (
TxTypes.MsgSetLeverage
)
Liquidity Pools Transactions
Create a Liquidity Pool (
TxTypes.MsgCreatePool
)Create a Pool with Initial Liquidity (
TxTypes.MsgCreatePoolWithLiquidity
)Add Liquidity to a Pool (
TxTypes.MsgAddLiquidity
)Remove Liquidity from a Pool (
TxTypes.MsgRemoveLiquidity
)Stake Pool Tokens (
TxTypes.MsgStakePoolToken
)Unstake Pool Tokens (
TxTypes.MsgUnstakePoolToken
)Claim Liquidity Pool Rewards (
TxTypes.MsgClaimPoolRewards
)
Order Management Transactions
Create a Trading Order (
TxTypes.MsgCreateOrder
)Cancel a Trading Order (
TxTypes.MsgCancelOrder
)Edit an Existing Order (
TxTypes.MsgEditOrder
)Cancel All Orders (
TxTypes.MsgCancelAll
)
Perpetual Pools Transactions
Deposit to a Perpetual Pool (
TxTypes.MsgDepositToPool
)Withdraw from a Perpetual Pool (
TxTypes.MsgWithdrawFromPool
)
Position Management Transactions
Set Margin for a Position (
TxTypes.MsgSetMargin
)
User Profile Transactions
Update User Profile (
TxTypes.MsgUpdateProfile
)
Staking Transactions
Delegate Tokens (
TxTypes.MsgDelegate
)Undelegate Tokens (
TxTypes.MsgUndelegate
)Begin Token Redelegation (
TxTypes.MsgBeginRedelegate
)
Last updated