GP 8: Extend pool limits for KYC'd users
Last updated
Last updated
Proposal was confirmed and executed:
Allow KYC'd users to deposit additional funds into zkBOB. An additional tier is added to increase limits to 20,000 BOB per day for users who hold a BAB NFT on Binance Chain.
In 2022, Binance introduced soulbound tokens known as . These tokens serve as identity credentials for Binance users who have completed KYC verification. These credentials can be extended to other chains using the protocol.
Information about BAB token ownership can be transferred from BNB Smart Chain to additional chains using the protocol. This protocol creates a cryptographic proof that a user possesses the token on BSC and lets users provide this proof to other supported chains. A user's BAB token status can be obtained from an NFT-compatible contract. The official KnowYourCat contract on Polygon is at , as referenced in the .
To extend limits for BAB token holders, this proposal creates a new tier limit in the zkBob pool and configures a KYC Provider Manager which checks the status of BAB token ownership on the KnowYourCat NFT contract.
The KYC Provider Manager manager is deployed at .
This manager contract introduces the method getIfKYCpassedAndTier
to access the limit tier for a user owning a BAB token. The manager provides 254
as the tier id for users who hold a BAB NFT.
The manager is configured so that each time a user requests a deposit, the account is checked to see if it has its own tier limit. If it does not, the manager is asked to return the tier and default limits apply.
The transaction contains 2 actions:
The method kycProvidersManager
must return 0xb8580ea6312dd2311d72bc932b0354a07d974138
The corresponding transaction in the governance safe is.
setLimits
(the selector is 0xe8fd02e4
) is called from the zkBobPool contract (). The method is called to configure limits for tier 254
which is associated with BAB token owners. The limits for this tier differ from tier 0
where dailyUserDepositCap
and depositCap
are both 10,000 BOB.
The zkBobPool
contract is upgraded to reflect these changes. ().
The new implementation is applied through the upgradeTo
call (the selector is 0x3659cfe6
).
setKycProvidersManager
(the selector 790c3a33) is called from the zkBobPool contract ().
This method configures the contract as the KYC Provider Manager.
Proposal execution can be verified in the :
The method getLimitsFor
for an account synchronised with BAB token ownership information through should display new limits. For example, one could use the account 0x813399e5b08Bb50b038AA7dF6347b6AF2D161828
.