Background context
We currently have multiple smart contracts in our network architecture require users to "bond" or "lock" tokens:
- Service registry: Infrastructure providers bond tokens to register database nodes on the network. End users deposit tokens to pay for the infrastructure.
- Interactions registry (coming soon): Verida accounts deposit tokens to send messages (and other interactions), message recipients receive tokens
- Trust registry (coming soon): Verida accounts lock tokens when registering themselves on the trust registry (ie: officially registering themselves as a company, or trusting another company)
The service registry currently implements addCredit() and removeCredit() methods that support depositing VDA tokens that can then be used transfer VDA tokens between users based on the service infrastructure each account uses.
In the future, the interactions registry and the trust registry will require similar functionality.
We require a separate vda bank smart contract that provides a common way to "lock" tokens in the Verida network, that can then be moved around by any of our Verida smart contracts. It acts like a Verida bank where each smart contract can lock, unlock or transfer tokens in this common deposit contract.
This will also allow for a simpler user experience because a user can lookup at the vda bank smart contract and see how many of their tokens are locked by different verida smart contracts, how much credit they have and where their tokens are being spent across the Verida network.
This also provides the best way to allow VDA community token holders to support the network (via gasless transaction payments) while also receiving a return for their staking.
User stories
TBA
Methods
TBA
Phase 1
For phase 1, we only require the necessary functionality to support the service registry.
This is likely:
addCredit()
removeCredit()
lockCredit()
unlockCredit()
transferCredit()
availableCredit()
Background context
We currently have multiple smart contracts in our network architecture require users to "bond" or "lock" tokens:
The service registry currently implements
addCredit()andremoveCredit()methods that support depositing VDA tokens that can then be used transfer VDA tokens between users based on the service infrastructure each account uses.In the future, the
interactions registryand thetrust registrywill require similar functionality.We require a separate
vda banksmart contract that provides a common way to "lock" tokens in the Verida network, that can then be moved around by any of our Verida smart contracts. It acts like a Verida bank where each smart contract can lock, unlock or transfer tokens in this common deposit contract.This will also allow for a simpler user experience because a user can lookup at the
vda banksmart contract and see how many of their tokens are locked by different verida smart contracts, how much credit they have and where their tokens are being spent across the Verida network.This also provides the best way to allow VDA community token holders to support the network (via gasless transaction payments) while also receiving a return for their staking.
User stories
TBA
Methods
TBA
Phase 1
For phase 1, we only require the necessary functionality to support the service registry.
This is likely:
addCredit()removeCredit()lockCredit()unlockCredit()transferCredit()availableCredit()