Colle Marketplace
Colle.ioWebApp (Live)WebApp (Test)
  • Contracts Overview
  • Functional Requirements
  • Contract Descriptions
  • Technical Project & Audit Details
  • Test Coverage Report
  • Static Analysis
  • Royalty Pool Explained
  • Sale State Explained
  • Sales Tax Explained
  • marketplace
    • IMarketHub
    • IMarketHubRegistrar
    • MarketHub
    • MarketHubRegistrar
    • MarketHubRegistrarUpgradeable
    • collections
      • ColleCollection
      • ColleCollectionUpgradeable
      • CollectionRegistry
      • IColleCollection
      • IColleCollectionUpgradeable
      • ICollectionRegistry
    • currencies
      • BaseCurrency
      • CurrencyRegistry
      • ICurrency
      • ICurrencyRegistry
      • USDCCurrency
    • escrow
      • EscrowUpgradeable
      • IEscrow
      • IEscrowRegistry
    • kycs
      • Account
      • IKYCRegistry
      • KYCRegistry
    • markets
      • BaseMarketUpgradeable
      • IListingMarket
      • IMarket
      • IMarketRegistry
      • IOfferMarket
      • ListingMarketUpgradeable
      • MarketRegistry
      • OfferMarketUpgradeable
    • royalties
      • BaseRoyalty
      • BlackTierRoyalty
      • GoldTierRoyalty
      • GreenTierRoyalty
      • IRoyalty
      • IRoyaltyPool
      • IRoyaltyRegistry
      • PlatinumTierRoyalty
      • RoyaltyPool
      • RoyaltyRegistry
      • v1
        • BlackTierRoyaltyV1
        • GoldTierRoyaltyV1
        • GreenTierRoyaltyV1
        • PlatinumTierRoyaltyV1
    • taxes
      • ITaxPolicyRegistry
      • Tax
      • TaxPolicyRegistry
    • upgrade-gatekeeper
      • IUpgradeGatekeeper
      • UpgradeGatekeeper
    • vaults
      • IVault
      • IVaultRegistry
      • VaultUpgradeable
  • team-smart-wallet
    • ITeamSmartWallet
    • ITeamSmartWalletHelper
    • TeamSmartWallet
    • TeamSmartWalletFactory
    • TeamSmartWalletPermitHelper
  • utils
    • MarketAccess
    • MarketAccessUpgradeable
    • Signature
    • SignatureValidator
Powered by GitBook
On this page
  • Understanding The Complexity
  • How Colle Manages Sales Tax
  • Situations With Zero Tax
  • The Tax Structure

Sales Tax Explained

As a part of our commitment to providing a secure and legal platform, we've developed a mechanism for handling sales tax within our Web3 application environment. This document outlines how we've incorporated sales tax calculation and collection into our transaction flow.

Understanding The Complexity

Sales taxes are notoriously complex, especially when dealing with international transactions. Buyers and sellers can be from different countries, or regions within a country, each with their unique tax rates and thresholds for taxation. In some cases, sellers might not have reached the threshold for tax collection in a certain region, hence no tax needs to be collected.

Given these intricacies, it's not feasible to handle the calculation and application of sales taxes entirely on-chain. Therefore, we've chosen to handle it off-chain.

How Colle Manages Sales Tax

To ensure accuracy and legality, we've implemented a process where Colle is responsible for setting and consenting to the tax rates. This applies to all sales, whether they're conducted via Colle relayed transactions or buyer transactions that include a Colle relayer signature endorsing the tax rate.

Here's how it works:

  • When a sale is initiated, the net price along with the calculated sales tax is withdrawn from the buyer's account and deposited into an Escrow.

  • In the event that the sale is cancelled, the funds (including the tax) are returned to the buyer.

  • Once the sale is completed, the sales tax is collected from the Escrow and transferred to a special Colle address used for the collection and remittance of sales taxes.

This approach allows us to ensure that the correct amount of tax is being applied and collected for each transaction.

Situations With Zero Tax

There are scenarios where the sales tax might be zero:

  1. The sale is made in a region where sales tax does not apply.

  2. The sale is a off-chain sale, in which case taxes were collected upfront when the user paid off-chain.

Even in these cases, the buyer's country and region details are still collected for record-keeping purposes.

The Tax Structure

We've designed a tax struct with three properties to capture the necessary information:

  • Amount: This represents the sales tax in ERC20 tokens, which matches the currency used in the sale.

  • CountryCode: Refers to the United Nations country code of the buyer's country.

  • RegionCode: This signifies the state or province within that country.

Through this structure, we can accurately track and manage the sales tax applicable for each transaction within our Web3 application environment.

PreviousSale State ExplainedNextmarketplace

Last updated 1 year ago