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 the MsgExec command, effectively acting under the granter's permissions without needing the granter to sign the transaction.

  • FeeGrant Module: Alongside the authz module, the feegrant 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

  1. Delegate Alliance Tokens (TxTypes.MsgAllianceDelegate)

  2. Undelegate Alliance Tokens (TxTypes.MsgAllianceUndelegate)

  3. Redelegate Alliance Tokens (TxTypes.MsgAllianceRedelegate)

  4. Claim Alliance Delegation Rewards (TxTypes.MsgAllianceClaimDelegationRewards)

  5. Withdraw Delegator Rewards (TxTypes.MsgWithdrawDelegatorReward)

Collateralized Debt Position (CDP) Transactions

  1. Supply Asset (TxTypes.MsgSupplyAsset)

  2. Withdraw Asset (TxTypes.MsgWithdrawAsset)

  3. Lock Collateral (TxTypes.MsgLockCollateral)

  4. Unlock Collateral (TxTypes.MsgUnlockCollateral)

  5. Borrow Asset (TxTypes.MsgBorrowAsset)

  6. Supply Asset and Lock Collateral (TxTypes.MsgSupplyAssetAndLockCollateral)

  7. Unlock Collateral and Withdraw Asset (TxTypes.MsgUnlockCollateralAndWithdrawAsset)

  8. Liquidate Collateral (TxTypes.MsgLiquidateCollateral)

  9. Liquidate Collateral with CDP Tokens (TxTypes.MsgLiquidateCollateralWithCdpTokens)

  10. Liquidate Collateral with Other Collateral (TxTypes.MsgLiquidateCollateralWithCollateral)

  11. Liquidate Collateral with Stablecoin (TxTypes.MsgLiquidateCollateralWithStablecoin)

  12. Repay Asset (TxTypes.MsgRepayAsset)

  13. Repay Asset with CDP Tokens (TxTypes.MsgRepayAssetWithCdpTokens)

  14. Repay Asset with Collateral (TxTypes.MsgRepayAssetWithCollateral)

  15. Mint Stablecoin (TxTypes.MsgMintStablecoin)

  16. Return Stablecoin (TxTypes.MsgReturnStablecoin)

  17. Claim CDP Rewards (TxTypes.MsgClaimRewards)

  18. Set Account in Efficiency Mode (EMode) (TxTypes.MsgSetAccountEMode)

  19. Remove Account from Efficiency Mode (TxTypes.MsgRemoveAccountEMode)

Token Management Transactions

  1. Deposit to Token Group (TxTypes.MsgDepositToGroup)

  2. Withdraw from Token Group (TxTypes.MsgWithdrawFromGroup)

  3. Create a New Token (TxTypes.MsgCreateToken)

Leverage Transactions

  1. Set Leverage for Trading (TxTypes.MsgSetLeverage)

Liquidity Pools Transactions

  1. Create a Liquidity Pool (TxTypes.MsgCreatePool)

  2. Create a Pool with Initial Liquidity (TxTypes.MsgCreatePoolWithLiquidity)

  3. Add Liquidity to a Pool (TxTypes.MsgAddLiquidity)

  4. Remove Liquidity from a Pool (TxTypes.MsgRemoveLiquidity)

  5. Stake Pool Tokens (TxTypes.MsgStakePoolToken)

  6. Unstake Pool Tokens (TxTypes.MsgUnstakePoolToken)

  7. Claim Liquidity Pool Rewards (TxTypes.MsgClaimPoolRewards)

Order Management Transactions

  1. Create a Trading Order (TxTypes.MsgCreateOrder)

  2. Cancel a Trading Order (TxTypes.MsgCancelOrder)

  3. Edit an Existing Order (TxTypes.MsgEditOrder)

  4. Cancel All Orders (TxTypes.MsgCancelAll)

Perpetual Pools Transactions

  1. Deposit to a Perpetual Pool (TxTypes.MsgDepositToPool)

  2. Withdraw from a Perpetual Pool (TxTypes.MsgWithdrawFromPool)

Position Management Transactions

  1. Set Margin for a Position (TxTypes.MsgSetMargin)

User Profile Transactions

  1. Update User Profile (TxTypes.MsgUpdateProfile)

Staking Transactions

  1. Delegate Tokens (TxTypes.MsgDelegate)

  2. Undelegate Tokens (TxTypes.MsgUndelegate)

  3. Begin Token Redelegation (TxTypes.MsgBeginRedelegate)

Last updated