FAQ

Basics

Q: What is MetaTx-Contracts? A: A suite enabling gasless meta-transactions (MetaTxGateway), gas-credit management (GasCreditVault), and DI token/tokenomics (presale, staking).

Q: How do meta-transactions work? A: A user signs a batch using EIP‑712. An authorized relayer submits the batch and pays gas. If native value is required, the relayer supplies msg.value; unused value is refunded to the user.

Q: Who can be a relayer? A: Only addresses authorized by the contract owner via setRelayerAuthorization.

Q: How are refunds handled? A: The contract sums the required native value and requires the relayer to include exactly that msg.value. Any unused native value after execution is refunded to the user's address.

Q: Where can I find deployed contract addresses? A: See the respective contract docs (MetaTxGateway, GasCreditVault, DI Token pages) for deployed addresses.

Q: Where do I get DI Tokens? A: Through presale, staking rewards, or supported exchanges — see Token Presale and Token Staking docs.

What Makes MetaTx-Contracts Different?

  • Gas credit system for prepaid gas with supported tokens

  • Native token support for meta-transactions (ETH/BNB)

  • Batch processing to reduce user friction and gas

  • UUPS upgradeability for safer upgrades

  • EIP-712 standardized signatures

Networks & Deployments

Primary networks:

  • BSC Mainnet & Testnet

Additional deployments (see contract pages):

  • Ethereum Mainnet, Polygon, Base, Optimism, Arbitrum, Avalanche (deployments may vary by component; check contract pages for exact addresses)

Gas Credits & Pricing

Q: What tokens can I use for gas credits? A: On BSC mainnet common examples are USDT, USDC, DI(in the future). Additional tokens may be supported by governance.

Q: How are gas credits calculated? A: Credits are derived from token deposits and oracle prices (e.g., Chainlink) to price token amounts into native-gas-equivalent units. Example formula (conceptual):

credits = (tokenAmount × tokenPrice) / (gasPrice × normalization)

Exact implementations use token decimals and oracle price formatting; see GasCreditVault docs for precise formulas.

Q: Are gas credits actual ERC tokens? A: No — gas credits are internal accounting units that are backed by deposited tokens in GasCreditVault. They are spent by authorized systems per policy.

Meta-Transaction Limits & Signatures

Q: What are recommended batch limits? A: Reasonable defaults (adjust per deployment):

  • Transactions per batch: typically 10 or fewer

  • Per-transaction gas: watch target contract limits; avoid extremely large individual calls

  • Signature deadline: short-lived (up to 10 minutes) depending on UX needs

Q: How long do signatures last? A: Signatures include a deadline timestamp. Recommended lifetimes:

  • Interactive UX: 5–10 minutes

  • Automated flows: 1–5 minutes

  • Less time for high-value operations

Q: How is replay prevented? A: Nonces, deadlines, domain separation and chainId binding prevent replay attacks across time and chains.

Security

Q: Is my private key safe? A: Yes — private keys never leave your wallet. Only signatures are shared. EIP‑712 prevents generic replay and makes domain-specific signing safe.

Q: What if the relayer is malicious? A: Relayers cannot alter signed content. You can run your own relayer or choose trusted relayers. Monitor relayer policies and logs.

Q: How are credits protected? A: Access control, reentrancy guards, audited libraries, and oracle validation help protect funds and pricing. See security disclosure for reporting vulnerabilities.

Usage & Troubleshooting

Q: Do I need native ETH/BNB in my wallet? A: No for meta-transactions if gas credits are funded and the relayer is authorized. You may need native tokens for direct interactions, initial deposits, or emergency operations.

Q: Why is my meta-transaction failing? A: Common causes:

  1. Insufficient gas credits or relay funds

  2. Expired signature (deadline passed)

  3. Incorrect nonce

  4. Wrong network / chainId

  5. Target contract reverted (application error)

Q: Why aren't my credits showing? A: Check network, contract address, transaction success on chain, and refresh frontend caches. Confirm deposit transaction succeeded.

Q: Can I transfer credits? A: Some deployments provide utilities to transfer internal credits between accounts — check GasCreditVault docs and contract capabilities.

Q: Can I run my own relayer? A: Yes. Relayer code, configuration, and deployment instructions are provided. Running your own relayer gives full control over fees and behavior.

Development & Integration

Q: What languages / frameworks are supported? A: Frontend: JavaScript/TypeScript (ethers.js). Contracts: Solidity 0.8.20+. SDKs for other languages are planned.

Q: How do I sign a batch? A: Use EIP‑712 typed data. See the EIP‑712 Signatures doc for domain and types with examples for _signTypedData.

Q: How do I test meta-transactions locally? A: Use Hardhat, deploy contracts to a local node or testnet, and run unit/integration tests. Examples are in the test/ directory.

Business & Operations

Q: What are the common use cases? A: Gaming, DeFi, NFTs, social tipping, corporate expense flows, onboarding — any UX that benefits from gas abstraction.

Q: How much does it cost? A: Users consume gas credits equivalent to network gas. Relayers may charge fees. Costs depend on gas market rates and relayer policies.

Support & Reporting

  • GitHub Issues: for bugs and feature requests

  • Security disclosure: follow the Security Disclosure page to report vulnerabilities

  • Community channels: Discord / official forums


If your question is not answered here, search the docs, open a GitHub Issue with full reproduction details, or join community channels for help.

Last updated