Conveyor Finance

Zwapper

P2P token exchange

Zwapper is a peer-to-peer exchange contract we developed on EVM. There is no live deployment linked from this site. The work is the protocol itself: an escrowed swap between two addresses without a centralized matcher.

Solidity 0.8, Truffle, EVM

Protocol flow

How a zwap settles on-chain

01

Create

User A opens a zwap. State: CREATED.

02

Join

User B joins. Both parties are set.

03

Submit

Each side names ERC-20, 721, or 1155 goods.

04

Lock

Assets move into the contract as escrow.

05

Withdraw

Each side takes the counterparty’s tokens.

06

Abort

If incomplete, locked goods return to owners.

A caller creates a zwap. A second address joins. Each side submits the tokens they intend to exchange — fungible, NFT, or ERC-1155 — then locks. Locking transfers those assets to the contract. Withdraw moves the counterparty’s goods to each user. Abort returns locked assets to their original owners if the swap has not completed.

State is explicit: NONE, CREATED, SUBMITTED, LOCKED, WITHDRAWING, COMPLETED, CLOSED. Events fire on join, submit, lock, withdraw, and abort so a client can reconstruct the swap without trusting an off-chain operator.

The interface supports batch transfer-from-sender for operational moves, but the core product is the two-party lock-and-withdraw path. This marketing site does not point at a mainnet or testnet address.

What we built

  • Two-party create / join / submit / lock / withdraw / abort
  • ERC-20, ERC-721, and ERC-1155 in the same zwap
  • Contract-held escrow until both sides withdraw or abort
  • On-chain events for every state change

No production deployment is linked from this page.

← All selected work