ocp-server

module
v1.19.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2026 License: MIT

README

Open Code Protocol Server

Release PkgGoDev Tests GitHub License

Open Code Protocol server monolith containing the gRPC/web services and workers that power next-generation currency launchpad and payment systems. The project contains the first L2 solution on top of Solana, utilizing an intent-based system backed by a sequencer to handle transactions.

What is Flipcash?

Flipcash is a self-custodial mobile wallet app leveraging the Open Code Protocol to provide a seamless multi-currency payments experience.

Quick Start

  1. Install Go. See the official documentation.

  2. Download the source code.

git clone git@github.com:code-payments/ocp-server.git
  1. Run the test suite:
make test

Project Structure

The implementations powering the Open Code Protocol (Intent System, Sequencer, etc) can be found int the ocp/ package. All other packages are generic libraries and utilities.

To begin diving into core systems, we recommend starting with the following packages:

  • ocp/rpc/: gRPC and web service implementations
  • ocp/worker/: Backend workers that perform tasks outside of RPC and web calls

APIs

The gRPC APIs provided by the Open Code Protocol server can be found in the ocp-protobuf-api project.

Contributing

Anyone is welcome to make code contributions through a PR.

This will evolve as we continue to build out the platform and open up more ways to contribute.

Getting Help

If you have any additional questions or need help integrating Flipcash into your website or application, please reach out to us on Twitter.

Directories

Path Synopsis
Package coinbase provides a client for Coinbase Developer Platform APIs, scoped to the surfaces this repo currently consumes (Onramp order status).
Package coinbase provides a client for Coinbase Developer Platform APIs, scoped to the surfaces this repo currently consumes (Onramp order status).
env
database
app
ocp
aml
data/currency/exchange
Package exchange defines a focused store for core-mint exchange rate records.
Package exchange defines a focused store for core-mint exchange rate records.
data/currency/exchange/cache
Package cache provides an exchange.Store decorator that caches single- and all-symbol rate lookups in front of a wrapped store.
Package cache provides an exchange.Store decorator that caches single- and all-symbol rate lookups in front of a wrapped store.
data/currency/exchange/dynamodb
Package dynamodb implements the exchange.Store interface on top of DynamoDB.
Package dynamodb implements the exchange.Store interface on top of DynamoDB.
data/currency/exchange/memory
Package memory provides an in-memory exchange.Store implementation for fast unit tests.
Package memory provides an in-memory exchange.Store implementation for fast unit tests.
data/currency/exchange/tests
Package tests holds the shared conformance suite run against every exchange.Store implementation.
Package tests holds the shared conformance suite run against every exchange.Store implementation.
data/currency/holder
Package holder defines a focused store for currency creator mint holder counts.
Package holder defines a focused store for currency creator mint holder counts.
data/currency/holder/dynamodb
Package dynamodb implements the holder.Store interface on top of DynamoDB.
Package dynamodb implements the holder.Store interface on top of DynamoDB.
data/currency/holder/memory
Package memory provides an in-memory holder.Store implementation for fast unit tests.
Package memory provides an in-memory holder.Store implementation for fast unit tests.
data/currency/holder/tests
Package tests holds the shared conformance suite run against every holder.Store implementation.
Package tests holds the shared conformance suite run against every holder.Store implementation.
data/currency/metadata
Package metadata defines a focused store for currency creator mint metadata.
Package metadata defines a focused store for currency creator mint metadata.
data/currency/reserve
Package reserve defines a focused store for currency creator mint reserve states.
Package reserve defines a focused store for currency creator mint reserve states.
data/currency/reserve/cache
Package cache provides a reserve.Store decorator that caches point-in-time reserve lookups in front of a wrapped store.
Package cache provides a reserve.Store decorator that caches point-in-time reserve lookups in front of a wrapped store.
data/currency/reserve/dynamodb
Package dynamodb implements the reserve.Store interface on top of DynamoDB.
Package dynamodb implements the reserve.Store interface on top of DynamoDB.
data/currency/reserve/memory
Package memory provides an in-memory reserve.Store implementation for fast unit tests.
Package memory provides an in-memory reserve.Store implementation for fast unit tests.
data/currency/reserve/tests
Package tests holds the shared conformance suite run against every reserve.Store implementation.
Package tests holds the shared conformance suite run against every reserve.Store implementation.
data/messaging/dynamodb
Package dynamodb implements the messaging.Store interface on top of DynamoDB.
Package dynamodb implements the messaging.Store interface on top of DynamoDB.
rpc
vm
backoff
Package backoff provides varies backoff strategies for retry.
Package backoff provides varies backoff strategies for retry.
vm

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL