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