Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • monero-project/ccs-proposals
  • rehrar/ccs-proposals
  • DSal/ccs-proposals
  • el00ruobuob/ccs-proposals
  • TONGZHENGSHIJIE/ccs-proposals
  • SarangNoether/ccs-proposals
  • pwrcycle/ccs-proposals
  • onosendai/ccs-proposals
  • xeagu/ccs-proposals
  • b-g-goodell/ccs-proposals
  • xmrhaelan/ccs-proposals
  • moneromooo-monero/ccs-proposals
  • AcceptThisYouCensors/ccs-proposals
  • Needmoney90/ccs-proposals
  • erciccione/ccs-proposals
  • knueffelbund/ccs-proposals
  • xiphon/ccs-proposals
  • dsc/ccs-proposals
  • Codivorous/ccs-proposals
  • serhack/ccs-proposals
  • sgp/ccs-proposals
  • Kukks/ccs-proposals
  • gingeropolous/ccs-proposals
  • hyc/ccs-proposals
  • saumyabratadutt/ccs-proposals
  • kayront/ccs-proposals
  • rellis/ccs-proposals
  • Avantpay19/ccs-proposals
  • lazaridiscom/ccs-proposals
  • omani/ccs-proposals
  • JackBlack/ccs-proposals
  • Kyoto/ccs-proposals
  • Endogen/ccs-proposals
  • sri346/ccs-proposals
  • asymptotically/ccs-proposals
  • Avis/ccs-proposals
  • Monero/ccs-proposals
  • jtgrassie/ccs-proposals
  • Fudin/ccs-proposals
  • helloworld9998/ccs-proposals
  • lalanza808/ccs-proposals
  • TheCharlatan/ccs-proposals
  • atoc/ccs-proposals
  • randybrito/ccs-proposals
  • Ministo/ccs-proposals
  • objectorange/ccs-proposals
  • adrelanos/ccs-proposals
  • mj/ccs-proposals
  • MoneroAddict/ccs-proposals
  • h4sh3d/ccs-proposals
  • paulshapiro/ccs-proposals
  • pricode/ccs-proposals
  • naijaminer/ccs-proposals
  • niyiajayi/ccs-proposals
  • cryptosourov/ccs-proposals
  • Drowxes/ccs-proposals
  • Mon_icp/ccs-proposals
  • Madbu221b/ccs-proposals
  • suyash67/ccs-proposals
  • kdavid2008/ccs-proposals
  • xmrLovera/ccs-proposals
  • lh1008/ccs-proposals
  • jatinajwani/ccs-proposals
  • normoes/ccs-proposals
  • Wobole/ccs-proposals
  • lederstrumpf/ccs-proposals
  • AlexAnarcho/ccs-proposals
  • readifugly/ccs-proposals
  • binaryFate/ccs-proposals
  • oeAdgK01/ccs-proposals
  • nio21/ccs-proposals
  • michaelizer/ccs-proposals
  • janowitz/ccs-proposals
  • fleaw/ccs-proposals
  • gusan/ccs-proposals
  • Leo27/ccs-proposals
  • tobtoht/ccs-proposals
  • anon/ccs-proposals
  • panagot12/ccs-proposals
  • kysn/ccs-proposals
  • monerotesla/ccs-proposals
  • sahil07/ccs-proposals
  • xmronadaily/ccs-proposals
  • ClaytonBHooverIII/ccs-proposals
  • txstreet/ccs-proposals
  • Aron/ccs-proposals
  • jklein/ccs-proposals
  • wtii/ccs-proposals
  • alynoe/ccs-proposals
  • selsta/ccs-proposals
  • johnfoss67/ccs-proposals
  • benevanoff/ccs-proposals
  • op/ccs-proposals
  • cirocosta/ccs-proposals
  • ragazzo/ccs-proposals
  • 888/ccs-proposals
  • elibroftw/ccs-proposals
  • amr-monero/ccs-proposals
  • behash/ccs-proposals
  • AnonDev/ccs-proposals
  • Rucknium/ccs-proposals
  • rating89us/ccs-proposals
  • AdorableTanuki/ccs-proposals
  • neat/ccs-proposals
  • plowsoff/ccs-proposals
  • xmr_sale/ccs-proposals
  • escapethe3RA/ccs-proposals
  • DouglasTuman/ccs-proposals
  • Bl5ckj5ck/ccs-proposals
  • j-berman/ccs-proposals
  • CrypticEntertainments/ccs-proposals
  • Geroser/ccs-proposals
  • ava_haidang/ccs-proposals
  • pluja/ccs-proposals
  • msvblab/ccs-proposals
  • monerokage/ccs-proposals
  • noot/ccs-proposals
  • RogueMaven/ccs-proposals
  • xmrman/ccs-proposals
  • moneronews/ccs-proposals
  • spirobel/ccs-proposals
  • winstonsthiccbooty/ccs-proposals
  • help.ukraine/help-ukraine-to-use-monero
  • dangerousfreedom/ccs-proposals
  • moneroist/ccs-proposals
  • anon_/ccs-proposals
  • agustincruz/3-d-metal-printer-project
  • savandra/ccs-proposals
  • willk/ccs-proposals
  • max.zab/ccs-proposals
  • rimuru/ccs-proposals
  • CryptoMorpheus_/ccs-proposals
  • jeffro256_/ccs-proposals
  • m0n3r0d1c3/ccs-proposals
  • leonerone/ccs-proposals
  • marjorie69/ccs-proposals
  • monero_archive/monero-archive
  • forgotsudo/ccs-proposals
  • mikigrey321/ccs-proposals
  • anhdres/ccs-proposals
  • thelefterisjp/ccs-proposals
  • lescuer971/ccs-proposals
  • MoneroBro/ccs-proposals
  • rayatina/ccs-proposals
  • HoudiniSwap/ccs-proposals
  • nightwolf361/ccs-proposals
  • z00t/ccs-proposals
  • markofdistinction_/ccs-proposals
  • busyboredom/ccs-proposals
  • Mitchellpkt/ccs-proposals
  • Fierfek/p-2-p-publisher-monerotopia-mexico-city
  • BigmenPixel/ccs-proposals
  • cmiv/ccs-proposals
  • VOSTOEMISIO/ccs-proposals
  • valldrac/ccs-proposals
  • Titus/ccs-proposals
  • C0mradeBlin/ccs-proposals
  • kayabaNerve/ccs-proposals
  • Boog9001/ccs-proposals
  • 4rkal/ccs-proposals
  • binarybaron2/ccs-proposals-bb
  • ajs/ccs-proposals
  • sacatunquetun/ccs-proposals
  • vtnerd/ccs-proposals
  • 0xFFFC0000/ccs-proposals
  • Clodagh/ccs-proposals
  • mrcyjanek/ccs-proposals
  • detheforxmr/ccs-proposals
  • r4v3r23/ccs-proposals
  • janaka303/ccs-proposals
  • eyedeekay/ccs-proposals
  • Secrecy1337/ccs-proposals
  • rohanrhu/ccs-proposals
  • baldeagle/ccs-proposals
  • fengzie_mbz/mobazha-with-monero-in-privacy-ecommerce
  • freeross/ccs-proposals
  • DiosDelRayo/ccs-proposals
  • omnedeus/ccs-proposals
  • geonic/ccs-proposals
  • untraceable/ccs-proposals
  • ki9/ccs-proposals
  • monerobullgitlab/ccs-proposals
  • sybann/ccs-proposals-bb
  • hinto/ccs-proposals
  • HardenedSteel/ccs-proposals
  • Kewbit/ccs-proposals
  • plowsofff/ccs-proposals
  • mainnet-pat/ccs-proposals
  • SimplifiedPrivacy/ccs-proposal-carrot-animated-video
  • SimplifiedPrivacy/ccs-proposal-carrot-animated-video-b
  • SNeedlewoods/ccs-proposals
  • midipoet/ccs-proposals
  • soufiane/ccs-proposals
  • geonic1/ccs-proposals
  • v1docq47/ccs-proposals
  • fullmetalScience/ccs-proposals
  • FiatDemise/xmrchat
  • dadybayo/ccs-proposals
  • rottenwheel/ccs-proposals
  • napoly/ccs-proposals
  • techpopulus/marketplace-monero-techdaddi
  • hbs/ccs-proposals
  • acx/ccs-proposals
  • wallet-verse/ccs-proposals
  • N1co1asB1ancon1/monero-contract-system
  • SyntheticBird/ccs-proposals
  • NorrinRadd/ccs-proposals
  • zhangyijia2022/openenet-ms-01-monero-space-decentralized-satellite-network
208 results
Show changes
---
layout: wip
title: Wallet SDK for Android
author: valldrac
date: May 17, 2023
amount: 295
milestones:
- name: Development
funds: 180 XMR
done: 4 March 2024
status: finished
- name: Security Enhancements
funds: 24 XMR
done: 12 August 2024
status: finished
- name: Continuous Integration & Testing
funds: 51 XMR
done:
status: unfinished
- name: Maintenance (3 months)
funds: 20 XMR
done:
status: unfinished
- name: Maintenance (3 months)
funds: 20 XMR
done:
status: unfinished
payouts:
- date: 21 March 2024
amount: 180
- date: 14 August 2024
amount: 24
- date:
amount:
- date:
amount:
- date:
amount:
---
### Deadline update: July 1, 2025
Prior to the deadline, the proposer MUST provide regular updates on their progress as per the CCS rules.
If the provided updates/progress (or lack thereof) is unsatisfactory, all remaining funds **can be** relinquished either before or after the deadline.
The community will then seek another person/team to take over. If this cannot be accomplished within a reasonable timeframe, the funds will be repurposed or reallocated to a similar proposal (subject to community consensus).
### Summary
We propose supporting the development of the new Monero SDK for Android that the [Molly.im](https://molly.im) team is actively working on.
The goal of this SDK is to provide a solution for developers to integrate Monero into their apps by offering an Android wallet library and a sample app. The library will include advanced features such as support for multiple wallets, sandboxed C++ code, client-side load balancing and asynchronous API. It will be compatible with Android Studio and fully optimized for size and performance. The demo app will feature the capabilities of the library, using the best practices and tools.
The development of this SDK aims to resolve issues found in existing libraries during the integration of Monero into Molly. If you would like to know the rationale behind this SDK, and learn about the Molly project and background, we recommend checking out our CCS titled "Decentralizing Molly.im to support Monero payments" and the latest follow-up at the following links: [CCS proposal](https://ccs.getmonero.org/proposals/vd-molly-payments-stage1.html) and [update post](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/252#note_20900).
### SDK Overview
The Monero SDK consists of two components:
1. **Android Library**: A specialized library that allows developers to interact with the Monero network and perform wallet operations. This library is written in Kotlin and offers a reliable asynchronous API.
2. **Sample Wallet App**: An example app written in Kotlin that showcases the usage of the library for wallet app development. It serves as an integration guide for developers and facilitates the testing of new functionalities.
### Android Library
The Android library is the core component of the SDK. Internally it wraps and extends the wallet2 low-level API.
Key features and design decisions of the Android library include:
- **Kotlin Language**: The library is implemented in Kotlin, which is the preferred language for Android development. Kotlin's interoperability with Java ensures compatibility with existing apps.
- **Asynchronous API**: It leverages Kotlin's Coroutines support for asynchronous programming, providing a reliable and non-blocking API that seamlessly integrates with Android's event-driven development model.
- **Sandboxed Execution**: All non-memory-safe code (C++) runs within an isolated process with zero privileges and restricted access to the host app or system resources. Even if a remote execution exploit affects Monero, it becomes extremely difficult for an attacker to elevate privileges to the system or host app.
- **Modular Architecture**: The library is built as an Android service, using Android's AIDL interprocess communication (IPC) to connect the Kotlin layer with the sandboxed native code. This client-server architecture decouples the internal wallet2 implementation from the public API of the SDK, facilitating future swapping of the wallet2 module without major changes to the API. This enables smoother migration to Seraphis for developers using our SDK.
- **Storage Abstraction**: The library provides a storage abstraction layer, simplifying wallet persistence for developers. It allows the SDK to be agnostic about the underlying storage mechanism (files, database, cloud, etc.). This flexibility enables developers to improve data-at-rest encryption without modifying the SDK code.
- **Network Client Injection**: Instead of relying on the networking code of wallet2, the SDK allows the app to provide its own HTTP client. This gives the app the freedom to support any transport protocol, such as Tor, transparently to the SDK.
- **Custom Logging**: The library includes a logging adapter that developers can customize. It enables the host app to determine log storage and location, providing a way to encrypt or remove sensitive information from the logs if needed.
- **Client-side Load Balancing**: The library enables the host app to dynamically select the optimal remote node for RPC calls, ensuring efficient synchronization with the Monero blockchain. This can significantly reduce synchronization time by choosing the fastest node.
- **Android Studio Compatibility**: The SDK is fully compatible with Android Studio, supporting native debugging, code navigation, and linter capabilities, for both the SDK library and the Monero codebase.
- **Optimized Build System**: The library has optimized CMake files that vendor all dependencies of wallet2, and applies Link-time optimizations (LTO) to remove all C++ code that is never called by the SDK. The result is a reproducible and lightweight library size of only 6 MB per arch, that can be built directly from Gradle.
### Sample Wallet App
The sample app is a fully functional multi-wallet app that serves as a reference for developers on integrating Monero into their apps. It is also a way to test if the library works well in a real-world application. Key features of the sample wallet app include:
- **Clean Architecture**: The sample app uses the latest Android libraries and follows the [official architecture guidance](https://developer.android.com/topic/architecture#recommended-app-arch).
- **Kotlin and Jetpack Compose**: The sample app is entirely written in Kotlin and uses Jetpack Compose for the UI, as well as many architecture components like Room, Lifecycle, and Navigation.
### Use Cases
The SDK is primarily designed to support two use cases: (i) local synchronized mobile wallets and (ii) Monero payments, with a focus on security, simplicity and performance. Although we are centered on these specific use cases, it would be beneficial to consider other potential applications where the SDK could be used in the future.
In the first stable release, it is planned to provide the following functionality:
1. Wallet Management
1. Create and restore wallet from mnemonic seed (25-words standard) or secret key
2. Export wallet seed and secret key
3. Save and load wallet from the storage defined by the app
2. Account Generation and Subaddresses
1. Derive account subaddresses and track their usage
2. Parse base58 public addresses
3. Balance Inquiry
1. Query locked/unlocked balance at a specific time
2. Retrieve transaction history
3. Listen to balance and transaction (ledger) updates
4. Transaction Handling
1. Construct, sign, and broadcast single and multi-recipient TXs
2. Handle network fee automatically
3. Create and verify payment proofs
5. Blockchain Synchronization
1. Resume scanning or restart it from a specific height
2. Load balance RPC calls and failover to multiple remote nodes
3. Monitor remote node status and response time
The following features would be left out of the first release: fine-grained coin control, hardware wallets, manual transaction input, message signing, and multisig. There is no roadmap or timeline yet for when these additional features will be included in future releases.
### Code Example
This snippet of code is a basic example to show how to use the API: [wallet-sdk-android-example.kt](https://gist.github.com/valldrac/54ff6842e4cc6d624ab893f4e839b2ae)
### Limitations and Known Issues
The biggest issue we have come across is how wallet2 trusts the remote nodes for blockchain synchronization. While it is widely known that malicious nodes can manipulate the returned blocks to deceive clients, the current lack of validation in wallet2 makes it too easy to exploit. Unfortunately, wallet2 fails to verify if the returned blocks line up with the previous blocks in the chain. This vulnerability has already been described in a security advisory ([link](https://www.reddit.com/r/Monero/comments/134jbdt/security_advisory_new_attack_from_malicious/)).
To mitigate this problem, we suggest adding basic integrity checks into wallet2, but without validating PoW. These checks will help wallet2 to early detect the attack when connecting to an honest node.
Our plan is to address this issue for the initial release of the SDK, as well as upstream the fixes to wallet2.
### Comparative Analysis
The main difference, in addition to the aspects mentioned in the design section, is that the existing libraries are essentially "library wrappers". They consist of a thin layer of code that translates the wallet2 API into a compatible interface for Java while maintaining the same (and intricate) semantics. However, in our SDK we have tried to develop a simplified yet flexible API explicitly designed for Android that prevents common pitfalls associated with wallet2.
It is important to note that we have not conducted a comprehensive comparative analysis yet between our SDK and existing Java libraries like Monerujo's [xmrwallet](https://github.com/m2049r/xmrwallet) or woodser's [monero-java](https://github.com/monero-ecosystem/monero-java).
### Progress Report
The development progress of the library API at a high-level is as follows:
- Wallet Management: 90% complete.
- Account Generation and Subaddresses: 20% complete.
- Balance Inquiry: 70% complete.
- Transaction Handling: 0% complete.
- Blockchain Synchronization: 80% complete.
We have made significant progress in the demo wallet app as well, implementing key features such as multiple wallet creation, customizable settings, balance checking, and individual remote node configuration for each wallet. The demo includes a basic syncing service that automatically refreshes and saves the wallets. It also supports syncing over SOCKS proxies.
Based on the progress made so far, we have spent a total of 625 hours on development. Out of these, 550 hours until the end of April, and 75 hours from May until now.
The SDK, that includes the library and the demo, is available on GitHub: https://github.com/mollyim/monero-wallet-sdk
### Proposal & Milestones
By funding this project we aim to accelerate the adoption of Monero in the Android ecosystem, providing a reliable and flexible solution for developers to integrate Monero into their apps. This funding will also drive the integration of Monero into Molly.im.
The proposed milestones for this project are as follows:
1. Development
- Complete the development of the library for the planned use cases.
- Complete the implementation of the remaining features for the demo wallet app.
2. Security Enhancements
- Implement and validate basic integrity checks in wallet2 to mitigate the risk of malicious nodes.
- Upstream the improvements to the core library.
3. Continuous Integration & Testing:
- Set up CI pipeline to automate builds, testing, and release processes.
- Maintain a minimum unit test coverage of 70% for the library (excluding 3rd party and generated code).
4. Release Management
- Iterate on the SDK based on community feedback, fixing issues, and reviewing pull-requests on GitHub.
- Coordinate new releases, including versioning and release notes.
5. Documentation
- Create a clear README that provides an overview of the project and build instructions.
- Generate the API reference documentation.
- Include code snippets and recipes to demonstrate how to solve common problems with the SDK.
- Create a component diagram that illustrates the architecture and key components.
- Comment the code of the wallet app to serve as an integration guide, explaining the implementation details.
- Regularly update the documentation.
6. Community Engagement
- Engage actively with the community on Matrix to understand their needs and include their suggestions into future updates.
7. Seraphis Migration Planning
- Join the Seraphis Working Group to provide feedback, share design ideas, and review migrations plans for a smooth transition to Seraphis.
### Funding
We are requesting a total of $36,000 in funding to support this project, allocated in these milestones:
1. Development: $22,000
2. Security Enhancements: $3,000
3. Continuous Integration & Testing: $6,200
For the remaining milestones (4 to 7) we propose to allocate $4,800 for 6 months of maintenance, with payouts of $2,400 every 3 months.
Based on current rate of 1 XMR = $140 (as of June 10th 2023) with a 15% volatility buffer, the equivalent amount of $36,000 would be approximately 295 XMR.
### Expiration
If no milestones have been claimed within 9 months from the start of the project (since moved to work-in-progress) or latest payout, the CCS for the project shall be considered expired. In case of expiration, the remaining unclaimed funds will be donated to other CCS proposals.
---
layout: wip
layout: cp
title: vtnerd Full-Time 2021 Q1
author: Lee Clagett (vtnerd)
date: February 17, 2021
......@@ -8,22 +8,22 @@ milestones:
- name: Month 1 (160 hours)
funds: 44 XMR
done: 09 April 2021
status: unfinished
status: finished
- name: Month 2 (320 hours)
funds: 44 XMR
done:
status: unfinished
done: 19 May 2023
status: finished
- name: Month 3 (480 hours)
funds: 45.4 XMR
done:
status: unfinished
done: 14 July 2023
status: finished
payouts:
- date: 4 January 2023
amount: 44
- date:
amount:
- date:
amount:
- date: 12 June 2023
amount: 44
- date: 26 July 2023
amount: 45.4
---
3-Months full-time software development on monero "core" components in 2021 q1 (through early q2).
......
---
layout: cp
title: vtnerd Full-Time 2023 Q3
author: Lee Clagett (vtnerd)
date: June 11, 2023
amount: 166.95 XMR
milestones:
- name: Month 1 (160 hours)
funds: 55 XMR
done: 20 September 2023
status: finished
- name: Month 2 (320 hours)
funds: 55 XMR
done: 26 November 2023
status: finished
- name: Month 3 (480 hours)
funds: 56.95 XMR
done: 11 February 2024
status: finished
payouts:
- date: 3 November 2023
amount: 55
- date: 1 December 2023
amount: 55
- date: 9 March 2024
amount: 56.95
---
3-Months full-time software development on monero "core" components in 2023 q3.
## What
Work primarily on the `monerod`, `wallet`, and `monero-lws`. Some of the work to be attempted or investigated:
- Complete p2p Noise encryption (already in-progress)
- Get new serialization routine merged (work on piecemeal PRs for reviewers sake)
- Complete work necessary to merge [DANE/TLSA in wallet2/epee](https://github.com/vtnerd/monero/tree/improve/dane_tlsa).
- Adding trust-on-first-use support to wallet2
- Add msgpack support to monerod-ZMQ (requires merging of new serialization system)
- `monero-lws` work:
- Optional full chain verification for malicious daemon attack
- Subaddresses
- A accept-all-new-accounts mode similar to MyMonero behavior (instead of manually callback)
- Webhook for new account creation (prevents polling for new accounts)
- ZMQ pub support for incoming transactions and blocks (notifies of _any_ new transaction or block)
- Create Github Actions that run unit-tests and provide binaries
- Provide official LWS docker-image
- Provide official snap/flatpak/appimge (tbd one or all of those)
- Provide pre-built binaries
- (Unlikely) - reproducible builds so community members can verify+sign the binary hashes
More than 3 months listed there, priorities may change as community requests or issues arise.
## Who
Lee Clagett (vtnerd). I've had [three](https://ccs.getmonero.org/proposals/vtnerd-tor-tx-broadcasting.html) [CCS](https://ccs.getmonero.org/proposals/vtnerd-2020-q4.html) [proposals](https://ccs.getmonero.org/proposals/vtnerd-2021-q1.html). The [full list of my monero PRs since last CCS](https://github.com/monero-project/monero/pulls?q=is%3Apr+author%3Avtnerd+created%3A%3E2021-02-17). I've also written a [msgpack implementation](https://github.com/vtnerd/monero-lws/pull/63) for the new serialization system (in Monero-LWS), an [admin REST](https://github.com/vtnerd/monero-lws/pull/62) api to Monero-LWS, as well as [webhooks for incoming transactions](https://github.com/vtnerd/monero-lws/pull/66) (including a [zero-confirmation](https://github.com/vtnerd/monero-lws/pull/72) for webhooks) (instead of the previously proposed ZMQ-PUB). [Unit tests](https://github.com/vtnerd/monero-lws/pull/53) were also finally added to Monero-LWS.
## Proposal
Work on the various tasks outlined above for 40 hours/week over the next 3 months after potential funding. I already use time-tracking software for work; if the hours dip in a given month unexpectedly, the update/milestone will be at the completion of the hours listed above.
The funds were calculated with 55 USD/hour with ~158.13 USD/XMR which is the 14-day exponential moving average on Kraken through 2023/07/02.
---
layout: cp
title: vtnerd full-time 2024 q3
author: Lee Clagett (vtnerd)
date: July 11, 2024
amount: 208.12 XMR
milestones:
- name: Month 1 (160 hours)
funds: 69 XMR
done: 24 August 2024
status: finished
- name: Month 2 (320 hours)
funds: 69 XMR
done: 03 October 2024
status: unfinished
- name: Month 3 (480 hours)
funds: 70.12
done: 22 November 2024
status: finished
payouts:
- date: 4 September 2024
amount: 69
- date: 26 October 2024
amount: 69
- date: 6 December 2024
amount: 70.12
---
3-Months full-time software development on monero "core" components in 2024 q3.
## What
Work primarily on the `monerod`, `wallet`, and `monero-lws`. Some of the work to be attempted or investigated:
- Code reviews of monero core PRs
- Optimization work in monero core (work with the new stressnet team)
- Add socks5 support to wallet and monerod (which adds IPv6 support to proxies)
- Add support for [torspec/control-spec](https://github.com/torproject/torspec/blob/main/control-spec.txt). This is similar to the SAM proposal for I2P
- Get new serialization routine merged (continue work on piecemeal PRs for reviewers sake)
- Complete work necessary to merge [DANE/TLSA in wallet2/epee](https://github.com/vtnerd/monero/tree/improve/dane_tlsa).
- Adding trust-on-first-use support to wallet2
- Add msgpack support to monerod-ZMQ (requires merging of new serialization system)
- `monero-lws` work:
- Complete LWS frontend (using `wallet_api.h` as interface) so that wallets can begin using LWS API easily. This is separate from woodser et al working on LWS API within `wallet2` which may be deprecated.
- Perform apache-benchmark test on REST api to determine effects of blocking ZMQ calls
- Cache some ZMQ calls performed during REST api responses to reduce burden on `monerod` and improve REST throughput
- Add concurrency to REST API responses - remove blocking ZMQ calls which starve valuable REST thread resources
- A switchover to boost asio/beast/azmq from epee/zmq to handle async http responses will be needed
- `get_random_outs` endpoint has blocking ZMQ calls that cannot be cached, thus the potential need for async-zmq
- Add a "scale" factor to remote scanning load balancing - send more accounts to systems with faster single thread performance
- Add 64-bit ed25519 code for faster arm64 scanning
- Provide official LWS docker-image
- Provide pre-built binaries
- (Unlikely) - reproducible builds so community members can verify+sign the binary hashes
There is intentionally more work than time allows - to ensure there is always something to work on in the proposal.
## Who
Lee Clagett (vtnerd). I've had [four](https://ccs.getmonero.org/proposals/vtnerd-tor-tx-broadcasting.html) [CCS](https://ccs.getmonero.org/proposals/vtnerd-2020-q4.html) [proposals](https://ccs.getmonero.org/proposals/vtnerd-2021-q1.html) ([last one](https://ccs.getmonero.org/proposals/vtnerd-2023-q3.html)), and [one Magic Grant](https://monerofund.org/projects/Q1Q2_2024_dev_vtnerd).
Some of my biggest features in monero core repo are [Dandelion++](https://github.com/monero-project/monero/pull/6314), [adding supercop ASM speedups to wallet code](https://github.com/monero-project/monero/pull/6337), [ZeroMQ Pub Support for new blocks and transactions](https://github.com/monero-project/monero/pull/6418), and [SSL support to p2p](https://github.com/monero-project/monero/pull/8996).
I've also made a functional LWS wallet scanner under CCS/Magic - which now has a MyMonero compatible REST API, admin REST API, LMDB storage, subaddress support, webhook/zmq/rmq publishing (new receives, spends, and accounts), multi-machine scanning with (primitive) load-balancing, and an untrusted daemon mode that verifies PoW is valid (whereas normal wallets trust `monerod` responses entirely).
## Proposal
Work on the various tasks outlined above for 40 hours/week over the next 3 months after potential funding. I already use time-tracking software for work; if the hours dip in a given month unexpectedly, the update/milestone will be at the completion of the hours listed above.
The funds were calculated with 65 USD/hour with ~157.41 USD/XMR which is the 9-day exponential moving average on Kraken through 2024/07/11. The rate is up a bit: (1) inflation, (2) volatility protection, and (3) closer in hourly compensation to 2 other contributors.
\ No newline at end of file
---
layout: wip
title: vtnerd full-time 2025 q1/q2
author: Lee Clagett (vtnerd)
date: February 21, 2025
amount: 134.37 XMR
milestones:
- name: Month 1 (160 hours)
funds: 44.79 XMR
done: 01 April 2025
status: finished
- name: Month 2 (320 hours)
funds: 44.79 XMR
done:
status: unfinished
- name: Month 3 (480 hours)
funds: 44.79
done:
status: unfinished
payouts:
- date:
amount:
- date:
amount:
- date:
amount:
---
3-Months full-time software development on monero "core" components in 2025 q1/q2.
## What
Work primarily on `monerod`, `wallet`, and `monero-lws`. Some of the work to be attempted or investigated:
- Code reviews of monero core PRs
- monerod/monero-lws bug fixes and HackerOne mitigations as they arrive
- Keep existing PRs up-to-date:
- New Serialization routine
- Change from raw pointers to weak_ptrs in levin code
- Socks v5
- P2P SSL Support
- Updating levin callbacks to C++14 moves
- Embargo timeout fix
- Find (possible) memory leak in weak_ptr PR
- Complete work necessary to merge [DANE/TLSA in wallet2/epee](https://github.com/vtnerd/monero/tree/improve/dane_tlsa).
- Adding trust-on-first-use support to wallet2
- Add msgpack support to monerod-ZMQ (requires merging of new serialization system)
- `monero-lws` work:
- Determine a “push” interface for LWS clients (instead of existing poll interface)
- Complete LWS frontend (using `wallet_api.h` as interface) so that wallets can begin using LWS API easily. This is separate from woodser et al working on LWS API within `wallet2` which may be deprecated.
- Add a new utility (to LWS-frontend) that accepts a spend key to report balance+spent transactions of wallet (requested via Github Issues). This will help verify accuracy of LWS endpoints
- Update LWS spec and implementation to support new "carrot" features (view-balance key, etc)
- Update LWS backend to work with fcmp++ experimental branch
- Add a "scale" factor to remote scanning load balancing - send more accounts to systems with faster single thread performance
- Add 64-bit ed25519 code for faster arm64 scanning
- Provide official LWS docker-image
- Provide pre-built binaries
- (Unlikely) - reproducible builds so community members can verify+sign the binary hashes
There is intentionally more work than time allows - to ensure there is always something to work on in the proposal.
## Who
Lee Clagett (vtnerd). I've [had](https://ccs.getmonero.org/proposals/vtnerd-tor-tx-broadcasting.html) [five](https://ccs.getmonero.org/proposals/vtnerd-2020-q4.html) [CCS](https://ccs.getmonero.org/proposals/vtnerd-2021-q1.html), [proposals](https://ccs.getmonero.org/proposals/vtnerd-2023-q3.html) ([last one](https://ccs.getmonero.org/proposals/vtnerd-2024-q3.html)), and [one Magic Grant](https://monerofund.org/projects/Q1Q2_2024_dev_vtnerd).
Some of my biggest features in monero core repo are [Dandelion++](https://github.com/monero-project/monero/pull/6314), [adding supercop ASM speedups to wallet code](https://github.com/monero-project/monero/pull/6337), [ZeroMQ Pub Support for new blocks and transactions](https://github.com/monero-project/monero/pull/6418), and [SSL support to p2p](https://github.com/monero-project/monero/pull/8996).
I've also made a functional LWS wallet scanner under CCS/Magic - which now has a MyMonero compatible REST API (now fully non-blocking to support more responses per thread), admin REST API, LMDB storage, subaddress support, webhook/zmq/rmq publishing (new receives, spends, and accounts), multi-machine scanning with (primitive) load-balancing, and an untrusted daemon mode that verifies PoW is valid (whereas normal wallets trust `monerod` responses entirely).
## Proposal
Work on the various tasks outlined above for 40 hours/week over the next 3 months after potential funding. I already use time-tracking software for work; if the hours dip in a given month unexpectedly, the update/milestone will be at the completion of the hours listed above.
The funds were calculated with 65 USD/hour with ~232.20 USD/XMR which is the 14-day exponential moving average on Kraken through 2025/02/21.
---
layout: wip
layout: cp
title: German translation of Monero Means Money (subtitles) and Sound Money, Safe Mode (subtitles)
author: Wobole
date: June 27, 2021
......@@ -20,6 +20,17 @@ payouts:
amount:
---
## Proposal Update 2024/09/05
- Wobole completed this proposal Jan 22, 2022 as confirmed independantly by 2, native german, community members.
- A partial address was posted in [this payout request](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/237#note_21125).
- The full address was never shared with Luigi or the acting CCS Coordinator at that time.
- Wobole has 1 year from now, to attempt to claim these funds by pasting a _new_ payout address from the same Gitlab account.
- After 2025-09-05 the entire balance (9.9 XMR) will be returned to the General Fund.
---
Hello everybody, this is Wobole again :)
## What and Why
......
---
layout: wip
layout: cp
title: xiphon full-time coding (3 months)
author: xiphon
date: 6 Feb 2021
......@@ -26,6 +26,19 @@ payouts:
amount:
---
### Proposal closed
The remaining funds (121XMR) have been donated to the general fund.
- Xiphon has not been seen/heard of for >2 years.
- This proposal has been abandonned.
- Xiphons total earnings from the CCS (year/xmr/price on day of payout(s))
- 2019: 190, $12533.36 USD
- 2020: 1051, $86310.75 USD
- 2021: 222.0, $56598.92 USD
- Should they re-appear they are welcome to create a fresh proposal.
# What
Would love to prolong my Monero coding for another 3 months and dedicate 40h/week, i.e. to work full-time.
......
---
layout: wip
title: XMRChat - a service for content creators to receive messages and tips in Monero.
author: FiatDemise
date: December 8, 2024
amount: 114
milestones:
- name: Milestone 1 - MVP (minimum viable product) using LWS
funds: 40
done: August 4, 2024
status: finished
- name: Milestone 2 - video display of xmrchats with Streamyard and OBS, find creator page, private xmrchats, making repo open source
funds: 30.56
done: November 20, 2024
status: finished
- name: Milestone 3 - creator specific minimum tip amount, links to more creator content + new tab UI for that and other settings, audio tip received notification, How To section in FAQ, old xmrchats expiration, admin page, site monitoring.
funds: 17
done:
status: unfinished
- name: Milestone 4 - on screen special effects and notifications based on tip tier, moderator / cohost page, feature currently live streams, fee system
funds: 27
done:
status: unfinished
payouts:
- date: 19 March 2025
amount: 70.56
- date:
amount:
- date:
amount:
- date:
amount:
---
_Note: 70.56XMR has been awarded to XMRChat from [TipXMR](https://ccs.getmonero.org/proposals/tipxmr.live.html)_
Who?
Douglas Tuman - Host of popular YouTube show, Monero Talk. Host of weekly show Monerotopia livestreamed in multiple platforms. Creator of Monerotopia annual conference - monerotopia.com. Creator of the Copamonero annual Monero-sponsored soccer tournament - copamonero.com. Sets up booth/tent at Libertarian party conventions and Porcfest to spread Monero awareness. Creator of gratuitas.org coffee beans business (and coffee brewer/bartender at XMR meetups/conventions. Founder of xmrbazaar.com online, p2p marketplace. Founder of plug-n-play XMR node implementation, the Nodo - moneronodo.com. X handle @DouglasTuman.
FiatDemise - Guy with project management experience that joined the Monero community in 2020. Helped save Kuno (kuno.anne.media) and volunteers time there as a moderator. Contributed to testing and provided feature feedback for xmrbazaar. Created a Monero for All brochure that is available in several languages and was distributed at Porcfest 2024. X handle @FiatDemise.
Saeed - Front-end web developer found via Monero Jobs & Proposals Telegram group, GitHub https://github.com/sa8ab. Developed dex alcor.exchange, github.com/avral/alcor-ui. Created raceroms.com. Has a network of other front and back end developers he partners with.
What?
XMRChat is website that provides content creators with a service, allowing them a way to receive messages and tips in Monero. We launched https://xmrchat.com/ on 8/4/2024, using it for the first time in MoneroTopia episode 177, where Doug interviewed Saeed, going over the project and what the site is capable of. https://www.youtube.com/watch?v=f1sy8ICsgBQ. We are looking to raise a total amount of 114 XMR at this time, split in 4 milestones as seen above.
Website: https://xmrchat.com/
X Account: https://x.com/xmr_chat
Code: https://github.com/sa8ab/xmrchat
How we got started?
In early 2024, FiatDemise was watching a streamer, one that accepts tips from viewers and reads their messages as part of their show. They accept fiat using YouTube Superchats, Rumble Rants, and Streamlabs. They publicly stated they’d like to accept crypto too. FiatDemise started a conversation with their staff to try to get them to use Luke Smith’s Shadowchat. FiatDemise volunteered to pay for a company to install and configure it too. After some promising back and forth, FiatDemise got a response saying the team’s web dev / admin was too busy with current projects and they didn’t want to devote any time towards installing or managing Shadowchat. FiatDemise learned that the market wanted a very simple solution that doesn’t require any installation, hosting, or technical knowledge.
At the time, FiatDemise was volunteering as a tester for xmrbazaar and raised the idea of a simple, hosted superchat solution in that Matrix group. Doug supported it right away, and we began working on requirements and giving shape to the vision with a Balsamiq wireframe. We worked with one developer to create a rough proof of concept. Then we found Saeed, a talented developer who could take the project to the next level. We saw the limitation of RPC, only being able to monitor incoming tips for one wallet, which wouldn’t work with the goal of hosting a solution for many content creators. After research, trial and error, and consultations with VTNerd and Radanne, we got LWS to work. After several more updates, the MVP was launched.
---
layout: wip
layout: cp
title: Monero Outreach Round 3
author: xmrhaelan
date: 22 May 2019
......@@ -22,10 +22,14 @@ payouts:
amount: 36.66
- date: 23 November 2020
amount: 36.67
- date: TBD
- date:
amount: 36.67
---
### Proposal closure/repurposed
_All remaining funds (36.67 XMR) have been transferred to [Monerotopia 2024 marketing and publicity](https://ccs.getmonero.org/proposals/monerotopia2024publicity.html)_
A big thanks again to everyone who supported Round 2 of funding for Monero Outreach! Final report can be found [here](https://www.reddit.com/r/Monero/comments/bonpt3/monero_outreach_round_2_ccs_final_report_see_what/).
We have made significant progress in our ability to support and enhance the outreach efforts of the Monero Community, and are beginning to receive requests for support from various areas of the Monero ecosystem. We are honored to be able to support Monero in this way, and we look forward even more to what is ahead!
......
---
layout: wip
layout: cp
title: xmrSale Payment Processor Development
author: xmrsale
date: 10 August, 2021
......@@ -38,6 +38,10 @@ payouts:
amount:
---
### Proposal closed
The remaining funds (30XMR) have been absorbed by https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/374
# What
[xmrSale](https://github.com/xmrsale/xmrSale) is a lightweight Monero payment processor that connects to your own Monero node, striving to be modular and lightweight. xmrSale has an accessible API written in python that talks to your own Monero node, uses RPC to generate new addresses, and monitors payment success with your own copy of the Monero blockchain.
......