Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
API Reference – Makechain
Skip to content

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 atomically
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 MID and project name
SearchProjectsSearch projects by name prefix with pagination
ListProjectsList projects with optional owner filter and pagination
GetProjectActivityRecent messages for a specific project

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, and verifications
GetAccountByKeyLook up an account by its Ed25519 public key
GetAccountActivityRecent messages for a specific account
GetKeyInspect a single key entry (scope, status, allowed projects)
ListKeysList all keys registered to an account with pagination
ListVerificationsList verified external addresses for an account

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

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 get-account --mid 1

grpc-web

Browser clients can connect via grpc-web (HTTP/1.1). 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.