ZKCross on-chain Proxy Settlement Protocol

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.