On-chain zkProxy settlement protocol
Blockchain-agnostic Settlement
The blockchain-agnostic settlement protocol establishes terms between a smart contract and application regarding distinct program inputs. Settlements can cover a range of components, from token and NFT transfers to on-chain data updates and incentive-based distributions.
Importantly, as long as proof verification passes, the settlement remains consistent across blockchains. This allows applications and contracts to operate in a blockchain-agnostic manner.
Specifically, an application can register for settlement via our zkProxy protocol by integrating the Solidity API. Some key capabilities include:
-
Token and NFT transfers: Applications can transfer fungible and non-fungible tokens to recipients in a trustless manner.
-
Data updates: Application data such as user profiles, balances, and permissions can be securely updated on-chain.
-
Incentive distributions: Applications are able to distribute rewards, rebates, or payments to users upon proof of work or other criteria.
-
Cross-chain support: Settlements defined through the zkProxy protocol remain consistent even if executed on different blockchains, allowing for cross-chain portability.
By registering with our settlement API, applications can securely settle contracts and execute value transfers across any EVM-compatible blockchain in a standardized, blockchain-agnostic way. This streamlines integration and improves cross-chain interoperability.
register(appId, callbackFunction);
The callbackFunction will be called once the zkProof verification success in our zkProxy contract.
callbackFunction (bytes memory payload)
{
Interpret the payload, and trigger real on-chain activity.
E.g if the OP_CODE in payload is GET_REWARD, then will mint or send reword token to the user address.
}
The memory payload is formatted as:
ops[0] = OP_CODE;
ops[1] = tokenIdx;
ops[2] = Amount;
ops[3] = address;
ZKCross also will provide some built-in contracts like token payment, NFT upgrade contracts. So that the developer don’t need to touch any solidity code.