Companies are required to collect and transfer sales taxes to government, but taxes calculation is a complex flow, the capital needs to be parked in a checking account doing nothing plus the transfers to tax authorities might be missed easily. We can be automated this task with smart contracts: we calculate the exact taxes using third-party tax calculations apis, store them and send them at required schedules. As a bonus we can stake them until the required transfer.

What it does

When a client buys something online, the UI calls the smart contract's sale function, which gets the sales taxes percentages from a chainlink node and calculates the taxes. Then it charges the user with the correct amount, and passes to the store owner the funds after taxes. The taxes are stored in the smart contract which can be used for staking. A chainlink keeper transfers the taxes due to the predefined addresses for tax authorities, or the business owner withdraws them and send them manually.

How we built it

Blockend: solidity, chainlink node, chainlink keeper. Frontend: nextjs, moralis

Challenges we ran into

  • Solidity limitations on number of arguments
  • solidity documentation

Accomplishments that we're proud of

  • chainlink node with adapter and keeper to update the taxes
  • the sale and amount split works end-to-end
  • display of transactions for easy review for business owners

What we learned

  • temper-proof taxes collection and processing in a transparent way

What's next for taxme

  • supporting US states and counties, currently we work with canadian provinces
  • better accounting tools
  • finishing the integration with chainlink keepers to withdraw taxes to tax collectors
  • staking rewards

Built With

Share this project: