Types of Limits in Holders
The Holders system has two main types of spending limits:- Card issuer bank limit. Restricts user spending across all accounts and may vary depending on the bank.
- Blockchain spending limit. Set by the user themselves and restricts debits from accounts at the blockchain level.
Issuer Spending Limit
The issuing bank is required to limit expenses on issued cards in accordance with Visa or MC payment systems policies and regulatory requirements. The limit is calculated collectively for all user cards, regardless of which accounts they are attached to.Wallester Limits
Blockchain Spending Limit
Blockchain spending limit is a restriction on debits from a user’s account that they set themselves at the blockchain level. This restriction is recorded in a smart contract and can only be changed by the account owner. Neither the partner bank nor Holders employees can modify it, which guarantees complete security of funds.Initially, there are no limits on the account except for bank limits. Users can set them whenever they want. Limits apply to all cards linked to this account.
Three types of limits are available:
- Single transaction limit — maximum amount for one purchase
- Daily limit — how much can be spent per day
- Monthly limit — how much can be spent per month
- Daily limit cannot exceed monthly limit
- Transaction limit cannot exceed daily limit
- You cannot set a limit equal to zero — the system will consider that no limit is set
Limit Setup Fee
Each limit set by the user is recorded on the blockchain and requires payment of a network fee (gas). The fee is paid by the client — the contract owner (Owner) — when confirming the operation in the wallet.Approximate fee values:
- Setting a limit on TON ≈ 0.05 TON
- Setting a limit on Solana ≈ 0.000005 SOL
Technical Implementation
The contract stores the daily spending amount and monthly spending amount. When attempting to conduct an operation for which:- daily spending amount + current operation amount > daily limit
- monthly spending amount + current operation amount > monthly limit
- current operation amount > transaction limit
It should be noted that there is a possibility of having an amount on the smart contract that exceeds the user’s actual available balance. This occurs due to delays in recording expense transactions to the blockchain within the rollup. Therefore, limit verification is performed first on the Holders backend side, and then on the blockchain, which ensures security and relevance of limit assessment.
After the user confirms the limit setup, a transaction signed with a binary payload containing information about the limits being changed is sent to the contract address. The contract checks who sent the transaction and if it was sent by the account owner, it responds and records the new limit.
Automatic Blockchain Limit Updates
The daily limit is updated daily at the time when the user set it. The monthly limit is updated after one calendar month has passed. That is, if a user set a limit on September 22nd at 00:01 UTC, it will be updated on October 22nd at 00:01 UTC.If a user wants to change a previously set limit (increase, decrease, or disable it), they can do so in the same way as the initial setup.