Grant Application: Rust SDK for CoW Protocol

Grant Title: Rust SDK for CoW Protocol

Author: pstylez78

GitHub: PatStiles (PatStiles)

About You:

Experienced Developer in Defi, and Web3
Contributor to the Jolt ZKVM (A16z), and Arkworks-rs.

Grant Category: Protocol Order Flow / Developer tools

Grant Description:

Problem:*

Builders / developers come from many different technical backgrounds. Due to the nature of web applications predominantly being written in JavaScript, CoW Protocol naturally developed a JavaScript SDK cow-sdk. After interest from the CoW Dao community a later grant was given to build a python SDK cow-py.

Rust has become a popular backend language for many developers in crypto with various L1 ecosystems committing to its usage. Creating a Rust SDK for developers to interact with CoW protocol will aid developers using Rust as there main development language that seek to integrate CoW protocol.

Solution: This grant seeks to set aside funding within Grants DAO to fund contributors to a CoW Protocol Rust SDK.

Grant Goals and impact:

Increase CoW protocol utility by extending the current cow protocol tooling to the widely used rust programming language.
Increase CoWmunity engagement, fostering a strong developer community.

Milestones:

Phase one (feature parity):

The first phase will involve developing the CoW Rust SDK to that allows for the following:

  • Querying the CoW Protocol subgraph.
  • Managing orders on the CoW Protocol.
  • Interacting with CoW Protocol smart contracts.
  • Encoding orders metadata and pinning to CID.
  • Fetching and decoding blockchain data.
  • Generated SDK documentation using OpenAPI Codegen.

Specifically the Cow Rust SDK will achieve feature parity with:

  • a. @cowprotocol/cow-sdk
  • b. @cowprotocol/contracts (hashing utilities)
  • c. @cowprotocol/app-data

To ensure soundness, correctness, and support ease of use, the Cow Rust SDK will include unit tests, integration tests and examples as outlined within the CoW Python SDK ( cow-py/tests at main · cowdao-grants/cow-py · GitHub ).

The project will be hosted within the @cowdao-grants organization on github within a repository titled cow-rs

Phase two (maintenance):

This phase will consist of being on call and active post development to proactively triage and address bugs and feature request reported by the community.

Contributors will maintain the CoW Protocol Rust SDK over the course of a year.

Grant Timeline:

Phase one: 8 weeks

Phase two: From 1 year after Phase 1 complete.

Funding Request:

$8,500 for the first phase. Based on the Grants Committee assessment (and whose decision is final), the funding will be divided amongst the developers of the Rust SDK with funds set aside for later review and auditing.

Once the Rust SDK reaches feature parity, the orders routed by the Rust SDK will become eligible for the Volume Grants Program. Funds from the Volume Grants Program (if any), will be distributed to original developers, and maintainers, on a ratio basis to be solely determined by the Grants Committee.

Budget Breakdown:

$8.5k: development / labor cost.
Volume Grants Program
Gnosis Chain Address (to receive the grant):

Referral: N/A

Terms and conditions:

By applying for this grant, I agree to be bound by the CowDAO Participation Agreement and the COWDAO Grant Terms and Conditions

4 Likes

Hi, this looks interesting! Would it be possible for this to be implemented in a manner whereby the SDK can be no_stdcompatible?

2 Likes

I do not think we could target full no_std compliance as for making network calls my plan was to utilize reqwest and tokio and they require std. alloy-rs as an example does not fully support no_std but instead adopts the strategy of separating no_std dependencies into separate crates such that you can compile parts with no_std. For the CoW Rust SDK I believe this would be a good approach.

Additionally, the CoW Rust SDK could support wasm compilation and generate js bindings for use in web apps. This is supported in Helios, ( helios/Cargo.toml at master · a16z/helios · GitHub ) as an example.

Sure, sounds good. Could we please make it wasm compatible at least?

Yes! I can include wasm compatibility as a feature in the sdk.

@mfw78 Should I update the grant and create a new forum post with updated milestones since the original post to this forum is now unable to be updated?

Sure this is fine if you want to post in the same thread again - thanks for checking!

1 Like

Per @Sov’s mention above, please feel free to update / post the revised post here, detailing inclusion of a WASM target.

Grant Title: Rust SDK for CoW Protocol

Author: pstylez78

GitHub: PatStiles (PatStiles)

About You:

Experienced Developer in Defi, and Web3
Contributor to A16z Jolt ZKVM, and Arkworks-rs.

Grant Category: Protocol Order Flow / Developer tools

Grant Description:

Problem:*

Builders / developers come from many different technical backgrounds. Due to the nature of web applications predominantly being written in JavaScript, CoW Protocol naturally developed a JavaScript SDK cow-sdk. After interest from the CoW Dao community a later grant was given to build a python SDK cow-py. Rust has become a popular backend language for many developers in crypto with various L1 ecosystems committing to its usage.

Solution: This grant seeks to set aside funding within Grants DAO to fund contributors to a CoW Protocol Rust SDK.

Grant Goals and impact:

Increase CoW protocol utility by extending the current cow protocol tooling to the widely used rust programming language.
Increase CoWmunity engagement, fostering a strong developer community.

Milestones:

Phase one (feature parity):

The first phase will involve developing a CoW Rust SDK that allows for the following:

  • Querying the CoW Protocol subgraph.
  • Managing orders on the CoW Protocol.
  • Interacting with CoW Protocol smart contracts.
  • Encoding orders metadata and pinning to CID.
  • Fetching and decoding blockchain data.
  • Generating SDK documentation using OpenAPI Codegen.
  • Compiling the SDK to wasm for use in web app development.

Specifically the Cow Rust SDK will achieve feature parity with:

  • a. @cowprotocol/cow-sdk
  • b. @cowprotocol/contracts (hashing utilities)
  • c. @cowprotocol/app-data

To ensure soundness, correctness, and support ease of use, the Cow Rust SDK will include unit tests, integration tests and examples as outlined within the CoW Python SDK (cow-py/tests at main · cowdao-grants/cow-py · GitHub).

The project will be hosted within the @cowdao-grants organization on github within a repository titled cow-rs

Phase two (maintenance):

This phase will consist of being on call and active post development to proactively triage and address bugs and feature request reported by the community.

Contributors will maintain the CoW Protocol Rust SDK over the course of a year.

Grant Timeline:

Phase one: 8 weeks

Phase two: From 1 year after Phase 1 complete.

Funding Request:

$8,500 for the first phase. Based on the Grants Committee assessment (and whose decision is final), the funding will be divided amongst the developers of the rust SDK with funds set aside for later review and auditing.

Once the Rust SDK reaches feature parity, the orders routed by the Rust SDK will become eligible for the Volume Grants Program. Funds from the Volume Grants Program (if any), will be distrbuted to original developers, and maintainers, on a ratio basis to be solely determined by the Grants Committee.

Budget Breakdown:

$8.5k: development / labor cost.
Volume Grants Program
Gnosis Chain Address: 0x08681acf4721a18c49145fd66708e340e56da312:

Referral: N/A

Terms and conditions:

By applying for this grant, I agree to be bound by the CowDAO Participation Agreement and the COWDAO Grant Terms and Conditions

2 Likes

@mfw78 @Sov Thank you for the feedback. I have posted the updated grant above!

1 Like

Signalling my support for this grant.

1 Like

Thanks @pstylez78 the grants council is ready for you to submit this to Snapshot. You can follow the instructions here to do so.

@mfw78 @Sov Thank you! Here is the Snapshot: https://snapshot.box/#/s:cowgrants.eth/proposal/0xc1fba0f5565658fce7392f8995a43149b5599472531fa8abbdc3bdaf7ad2ed5f

3 Likes

Congratulations! Your grant proposal has been approved by the CoW Grants Council via Snapshot.

Grant: Rust SDK for CoW Protocol
Amount: 8,500 xDAI (Phase 1)
Approved: Snapshot on November 10, 2025

Your Grant Team

@Sov - Process, payments, and approvals
@mfw78 - Technical review and quality standards

This is a hybrid grant: Phase 1 (milestone-based, 8 weeks) develops the Rust SDK to feature parity with JS/Python SDKs. Phase 2 (one-year maintenance) will be discussed upon completion of Phase 1 as part of the Volume Grants Program. Your approved proposal governs all details.


Milestone & Delivery

Milestone Deliverable Due Date Payment
Phase 1 Complete Rust SDK with feature parity to JS/Python SDKs (core functionality, contract interaction, app data handling, tests, docs, published to crates.io) January 6, 2026 8,500 xDAI

Success metric: Rust SDK achieves feature parity with existing SDKs and enables developers to interact with CoW Protocol using Rust.

When you complete the milestone, post in this thread with links to deliverables (GitHub, docs) and tag @Sov and @mfw78. Your Reviewer responds within 7-14 days. Approved milestones enter the next end-of-month payout cycle, with funds arriving by the 15th of the following month.

Post progress updates every 2-4 weeks. Flag blockers early. Small changes can be approved directly by your team. Major changes need a Snapshot vote.


Your Responsibilities

Execute your proposal as approved and deliver on time to the quality standards you committed to. Post proactive progress updates in this thread - don’t wait for us to ask. When you hit issues, flag them early. When you complete milestones, post deliverable links and tag your team. If timelines shift, discuss in this thread.

Deliverables must be open source. You’re an independent contractor handling your own taxes. Review full grant terms here and here.


Please reply confirming that you’ve read this onboarding, provide your Gnosis Chain payment address (must match your Snapshot signing account), confirm that you understand your responsibilities, and acknowledge that you can reach your Steward and Reviewer via the contacts above.

Once confirmed, you’re clear to start building.

Questions? Tag @Sov for process/payments or @mfw78 for technical issues. :cow_face:

3 Likes

@pstylez78 Can you please confirm receipt of and understanding of the above message detailing handling of your grant? :folded_hands:

Apologies! Yes I acknowledge the above message and confirm the details of handling the grant!

1 Like

@pstylez78 Can you please provide an update as to your progress on this grant? Please kindly include public repository, and/or alternatively reach out on Discord so that we may facilitate movement of there repository to the cowdao-grants · GitHub organisation (with appropriate maintainer permissions) so that work can be migrated there.

1 Like

@pstylez78 Hi, please advise the status of this grant, otherwise we may have to commence action to start to cancel this approval in lines with the CoW DAO Grant’s Terms and Conditions.

1 Like

Hi below is an update and new timeline for the grant. I due to personal circumstances the progress of the project has been delayed. I spoke off-forum as the situation was personal in nature @mfw78.

Revised CoW Rust SDK (cow-rs) Development Schedule


Phase 1: Core and Orderbook

Submodules: cow-sdk-core, cow-sdk-orderbook

Deadline: Wednesday, February 25, 2026

  • Project Initialization: Set up Cargo workspace and base dependencies (tokio, serde, alloy/ethers).

  • Core Primitives: Implementation of shared types including Address, TokenAddress, ChainId, and Domain Separators.

  • Hashing Utilities: Port EIP-712 signing logic for OrderComponents and Trade types.

  • Orderbook API: * Map data models for Orders, Trades, and Auctions.

    • Implement asynchronous client for fetching, creating, and canceling orders.
  • Testing: Implement unit tests for signature verification and API response parsing.


Phase 2: Subgraph and Trading

Submodules: cow-sdk-subgraph, cow-sdk-trading

Deadline: Wednesday, March 4, 2026

  • Subgraph Client: * Define GraphQL schemas for protocol history, solver performance, and user trades.

    • Implement query builders for historical data extraction.
  • Trading Module: * Develop high-level abstractions for “Quote-to-Order” workflows.

    • Implement slippage protection and price impact calculation logic.

    • Integration with fee estimation endpoints.


Phase 3: Composable CoW and Cow-Shed

Submodules: cow-sdk-composable, cow-sdk-cow-shed

Deadline: Wednesday, March 18, 2026

  • Composable CoW: * Port IConditionalOrder interaction logic.

    • Support for specialized order types (TWAP, Limit Orders).

    • Encoding logic for conditional order parameters.

  • Cow-Shed: * Integrate experimental protocol features and research-tier settlement logic.

    • Port specialized contract wrappers for “Shed” features.

Phase 4: Flash Loans and App-Data

Submodules: cow-sdk-flash-loans, cow-sdk-app-data

Deadline: Wednesday, March 25, 2026

  • Flash Loans: * Implement interfaces for interacting with protocol-level liquidity and buffer-based flash loans.

    • Support for settlement-level arbitrage and liquidation execution.
  • App-Data & Metadata: * Port JSON schema validation for order metadata.

    • Implement CID (Content Identifier) generation and IPFS pinning utilities.

    • Encoding/Decoding of appData strings.


Phase 5: Finalization and Documentation

Focus: Soundness, Parity, and DX

Deadline: Wednesday, April 1, 2026

  • Integration Testing: Complete parity testing against the cow-py and cow-sdk (TS) test suites.

  • OpenAPI Codegen: Finalize auto-generated SDK components for remaining API endpoints.

  • Developer Experience: * Finalize rustdoc documentation for all crates.

    • Provide comprehensive examples for each submodule (e.g., examples/composable_order.rs).
  • Handover: Final repository cleanup and release of version 0.1.0 to the cowdao-grants organization.

1 Like

Hi @pstylez78,
Thank you for the revised timeline however today being February 26th, we are yet to see any repository associated with this. It is of my opinion that we should move this to a more collaborate, community driven development, such as that which was used for cow-py and then have members of the community collectively push to it (based on the cowdao-grants repository).

I am more in favour of making this collaborative as opposed to an exclusive arrangement.

mfw