[Application] Ditto Protocol - NFT Futures

  • Project Name: Ditto Protocol
  • Team Name: Ditto Labs
  • Payment Address: 0x9C3EE321558AFBAe72e286d9B637963A794eB5DC
  • Level: :seedling:-Seed

Project Overview :page_facing_up:


Ditto is a protocol for NFT futures.

Liquidity in NFT space has been an issue. We are interested in creating NFT financial instruments like Futures and Options which take no extractive fee, and work for the users.

Ditto is intended to be a public good with the code under MIT license. Our frontend will also be open source and hosted on IPFS.

Protocol features:

  • Ditto protocol is fully trustless and governance free. All the parameters are hardcoded in the contract with no way to change it after deployment.
  • There is no protocol fee, and any other fee is to incentivize protocol participation.
  • We are researching Verifiable Delay Functions (VDF) to combat front running.
  • TWAP oracle for NFT prices.
  • Claims to receive an on-chain NFT as a reward token for protocol participants. We believe this will act as an additional incentive to participate in the protocol, and we want to work with an artist to make these NFTs something people will want to own.

The protocol will be deployed on Ethereum and L2s, once it is feature complete and audited.


Anyone interested in opening a position on an NFT may mint a non-fungible (ERC-721) future, called a clone, that represents a claim to receive its underlying NFT when it is sold via Ditto Protocol.

Each clone encodes:

  • An NFT collection at a contract address.
  • A specific token ID or the floor of that NFT collection.
  • The current value represented by the clone.
  • A minimum bid amount to purchase the clone from its current owner.

A clone can be specified to a particular NFT or to the floor price of a set, meaning its value is the minimum amount the seller of an NFT in that set will receive. The clone is always up for auction and may be purchased by anyone at any time.


Ditto’s core mechanism is inspired by SALSA from radicalxchange. It blends SALSA with dutch auctions.

When a position is opened, and a clone minted, a small fee is taken from the funds transferred and put in a subsidy pool specific to the underlying NFT. When that NFT is sold through ditto the value in subsidy pool will be transferred to the NFT seller.

After the clone is minted the auction price is immediately set to twice the clone’s current worth and decreases to the clone’s current worth over a set period of time. Anyone looking for a position for the same underlying NFT at a higher value than the current clone owner’s must pay at least the minimum auction price calculated by the ditto smart contract.

When a higher value position supersedes another:

  • The clone is transferred to the newest bidder from the current clone owner.
  • A fee is taken from the newest position and put into the subsidy pool.
  • The previous Clone owner will have their position refunded (minus their initial fee), and receive half the fee from the latest bid.

As that Clone gets traded, the funds allocated to the underlying NFTs pool increase. To sell an underlying NFT, the NFT owner simply transfers it to the Ditto Protocol contract.

This kicks off the instantaneous selling process:

  • The seller receives the clone’s worth and all the funds collected in its subsidy pool, incentivizing selling via Ditto protocol.
  • The clone holder gets the NFT after which the clone is burned.

A clone owner may redeem their clone for its worth at any time, burning the clone in the process.


Ditto is built to be as modular and composable as possible. As such, it does not have any rewards built into the core protocol, however it does have vouchers. Vouchers are recorded as a hash in the core ditto contract whenever a position is superseded by another. They will contain relevant information for anyone to construct their own rewards on top of ditto.

We plan to create an ERC-1155 reward token on top of ditto in order to incentivize healthy participation in the protocol.

Team :busts_in_silhouette:

Team members

  • blockdev
  • calvbore


Legal Structure

  • Registered Address: None
  • Registered Legal Entity: None

Team’s experience

blockdev: Developer at Index Coop and an occasional contributor at Buidl Guidl. Before that I was a web2 developer with 7 years of experience. Participating in the current cohort of Secureum CARE audit program.

calvbore: Buidl Guidl, Secureum Epoch 0 RACE & CARE, cadCAD Bootcamp


  • Loogie tanks: Composable SVG NFT on Optimism: Quixotic. Each such tank is an SVG NFT. You can other SVG NFT to the contract and it will be able to render it in the tank. The only requirement is that the NFT should have a public renderTokenById() function.
  • Decentralized remittance: Dapp which lets you transfer DAI without incurring gas cost. It uses Infura relayer to enable meta-transaction and uses Compound to generate interest to compensate for the gas.


  • Circom Starter Kit: A scaffold-eth branch integrating the circom language for developing zero knowledge circuits.

We have a gitcoin grant here: Ditto Protocol - Trustless NFT Futures | Grants | Gitcoin

Team Code Repos

Please also provide the GitHub accounts of all team members. If they contain no activity, references to projects/repos hosted elsewhere are also fine.

Project Description :page_facing_up:

Grant funds will be used to fund –

  • an artist to develop generative SVG art for the reward tokens,
  • a security audit of the protocol,
  • and project contributors.

Deliverables :nut_and_bolt:

Please list the deliverables of the project in as much detail as possible. Please also estimate the amount of work required and try to divide the project into meaningful milestones.

  • Total Estimated Duration: 3 months
  • Full-time equivalent (FTE): 60 FTE days.
  • Total Costs: 50,000 USD

Note that these we will be working on these milestones in parallel.

Milestone 1

  • Estimated Duration: 1 month
  • FTE: 20 days
  • Costs: 10,000 USD
Number Deliverable Specification
1. VDF to tackle frontrunning This involves [a] integrating a VDF verifier smart contract into ditto and [b] finding or developing a VDF prover able to be run in the browser.
2. TWAP oracle TWAP oracle (similar to UniV3) added in smart contract for clone prices to help others to integrate Ditto Protocol
3. Self-audit Leverage open source security tools like fuzzers and slither for basic security check.

Milestone 2

  • Estimated Duration: 1 month
  • FTE: 20 days
  • Costs: 10,000 USD
Number Deliverable Specification
1. generative SVG art for reward token This involves [a] finding an artist, [b] collaborating with them on the art, and then [c] integrating it in the contract.

Milestone 3

  • Estimated Duration: 2 months
  • FTE: 1 month
  • Costs: 10,000 USD
Number Deliverable Specification
1. Functioning frontend app This involves [a] finding a frontend engineer to be part of the team, [b] finalizing the UI, [c] building and shipping the frontend.

Milestone 4

  • Estimated Duration: 2 months
  • FTE: 1 month
  • Costs: 20,000 USD
Number Deliverable Specification
1. Security Audit This will start as soon as the smart contracts are done, but might take longest to complete as reputable auditors have a long backlog.

Future Plans

The core protocol is agnostic to rewards, anyone may create and implement their own rewards on top of ditto. We have preliminary plans to spin up a DAO through the our reward token implementation.

This is a public good project, so we will be promoting this project through Twitter and NFT discord servers. Grant fundings will help us keep working on this project.

  • The team’s long-term plans and intentions in relation to it. In other words, how will it be made sustainable?

The ditto protocol is immutable and once deployed will live trustlessly on the blockchain, with minimal maintenance. We hope for ditto to become a core composable layer for web3 dapps to build upon and wish to further facilitate this with a DAO built on top of ditto.

Additional Information :heavy_plus_sign:

How did you hear about the Grants Program? Nader Dabit’s twitter thread about grants.

Work you have already done.

Our smart contract is nearing completion. We have extensive test cases as we are laser focused on security, since we can’t upgrade deployed contracts. The only remaining contract features are VDF and TWAP oracle.

If there are any other teams who have already contributed (financially) to the project.

We have raised funds only through gitcoin grants.

1 Like


As there has been no activity from other Grants Committee members, I am going to say this is a “no” for now.

My rationale is below:
A project that is DeFi + working with things like futures/options trading, ought to be financially viable on its own. Whether it’s through fees, arbitrage, or some other profit taking mechanism you come up with, I don’t see any reason why you’d need this work to be grant funded. It should fund itself from the start.

Given this and the fact that there is not much here related to open source technology (aside from the fact that the work would presumably be on GitHub), it’s also not a strong candidate in terms of contributing to FOSS.

The way this might be beneficial to Radicle is at a later date.

For example, the Treasury has over $200M worth of assets and there may be better ways to allocate those assets. If/when your futures protocol is up and running, there might be a use-case for us to tap into it for risk management (hedging risk with futures, etc.)