Skip to content
LogoLogo

API Reference

Makechain exposes a single gRPC service (MakechainService) for reading and writing state. The service supports grpc-web for browser clients and server reflection for runtime discovery.

Write Operations

Submit signed messages for inclusion in the consensus pipeline.

RPCDescription
SubmitMessageSubmit a single signed message (verify, validate, mempool)
BatchSubmitMessagesSubmit multiple signed messages with per-message acceptance results
DryRunMessageValidate a message against current state without submitting

Read Operations

Query the current state of projects, accounts, refs, and commits. All list operations support cursor-based pagination (max 200 items per page).

Projects

RPCDescription
GetProjectGet project metadata and status by project ID
GetProjectByNameLook up a project by owner_address and project name
SearchProjectsSearch projects by name prefix with pagination
ListProjectsList projects with optional owner filter and pagination
GetProjectActivityRecent messages for a specific project
GetMergeRequestGet an active merge request by target project and request ID
ListMergeRequestsList active merge requests targeting a project
ListMergeRequestsByRequesterList active merge requests opened by a specific owner_address

Git Objects

RPCDescription
GetRefGet a single ref by project ID and ref name
ListRefsList all refs in a project with pagination
GetRefLogGet the update history of a ref
GetCommitGet commit metadata by project ID and commit hash
ListCommitsList commits in a project with pagination
GetCommitAncestorsWalk the commit graph and return ancestor chain
ListCollaboratorsList project collaborators with pagination

Accounts

RPCDescription
GetAccountGet account metadata, keys, storage units, project count, verifications, and link count by owner_address
GetAccountActivityRecent messages for a specific owner_address
GetKeyInspect a single key entry for an owner_address (scope, allowed projects, added_at)
ListKeysList all keys registered to an owner_address with pagination
ListVerificationsList verified external addresses for an owner_address
ListLinksList links for an owner_address (follows, stars)
ListLinksByTargetList accounts that link to a target owner_address or project
ListReactionsList reactions from an owner_address (likes on commits)
ListReactionsByTargetList owner_address values that reacted to a target commit

Blocks & Messages

RPCDescription
GetBlockGet a committed block by block number (includes transaction chunks)
ListBlocksList recent committed blocks (newest first)
GetMessageLook up a committed message by its BLAKE3 hash
ListMessagesList committed messages across a range of blocks

Proofs

RPCDescription
GetOperationProofGet a QMDB operation (inclusion) proof for a public state key
GetExclusionProofGet a QMDB exclusion proof for a public state key
VerifyOperationProofVerify a previously obtained operation proof against the current committed root
GetStorageQuotaProofGet a QMDB proof bundle for an account's active storage grants

Node Operations

RPCDescription
GetNodeStatusCurrent block height, mempool size, pending blocks, network, version, and uptime
GetHealthLiveness and readiness probe for load balancers
GetChainStatsCumulative chain analytics (total messages, projects, accounts, blocks)
GetSnapshotInfoCurrent snapshot status (block number, entry count, state root)
GetMempoolInfoMempool size and per-type message counts

Streaming

RPCDescription
SubscribeMessagesServer-streaming RPC for live message updates
SubscribeBlocksServer-streaming RPC for live block updates

SubscribeMessages supports filtering by:

  • project_id — only receive messages for a specific project
  • types — only receive specific message types (e.g., only COMMIT_BUNDLE)

Connection

The default gRPC endpoint is localhost:50051. Use --grpc-addr to configure.

# gRPC (native clients)
grpcurl -plaintext localhost:50051 list
 
# CLI client
cargo run --bin cli -- --endpoint http://localhost:50051 account get --owner-address 0x0000000000000000000000000000000000000001

REST Gateway

A Cloudflare Workers gateway translates HTTP REST requests into gRPC calls. This is the recommended way for browser clients, mobile apps, and any HTTP-native integration to interact with Makechain.

  • All endpoints return JSON
  • Input validated with Zod schemas
  • SSE streaming for real-time message and block updates
  • gRPC-web passthrough for clients that prefer raw protobuf

Merge-request REST surfaces:

  • GET /v1/projects/{projectId}/merge-requests
  • GET /v1/projects/{projectId}/merge-requests/{requestId}
  • GET /v1/accounts/{ownerAddress}/merge-requests

On the REST surface, merge-request source_ref and target_ref are exposed as hex-encoded bytes so arbitrary non-UTF-8 ref names round-trip without loss.

See the REST API reference for complete endpoint documentation, or try the interactive API explorer to call endpoints directly from your browser.

grpc-web

Browser clients can also connect via grpc-web (HTTP/1.1) directly. The node accepts HTTP/1.1 requests and translates them to gRPC internally via tonic-web. CORS headers are configured to allow cross-origin requests.