Skip to main content

Karma GAP

Karma GAP (the Grantee Accountability Protocol) connects garden activity to project reporting and milestone records. When the module is active, the assessment resolver tries to mirror each assessment to a GAP milestone, so grant programs that already track accountability through GAP see Green Goods work in the format they trust. The mirror is best-effort: a GAP failure is caught so the assessment still succeeds, which means a valid assessment can exist without its milestone, and anything that correlates the two has to tolerate or reconcile the missing record.

How it flows​

Evaluators and stewards (and the garden's owner, through the inclusive role checks) record the assessment once in Green Goods, and the module carries it over to GAP when it can.

Where it lives in the code​

LayerSource
Modulepackages/contracts/src/modules/Karma.sol
Assessment mirrorpackages/contracts/src/resolvers/Assessment.sol, which calls the module in a try/catch
Data accesspackages/shared/src/modules/data/karma.ts

Checked-in deployment projection​

NetworkStatusRecorded components
Sepolia Testnet (11155111)DeployedkarmaGAPModule
Arbitrum One (42161)DeployedkarmaGAPModule

Networks without recorded components are omitted; per-network state lives in the deployment status projection.

Indexer boundary​

Configured indexer contracts: KarmaGAPModule.

A deployment artifact does not by itself prove product activation, live indexing, or partner-service health. This projection regenerates from checked-in artifacts via node scripts/docs/generate.mjs.

Working with it locally​

The fork mode (bun run dev -- fork) runs a local fork of Arbitrum One with the module state present; mirroring to the live GAP registry needs the real chain.

Canonical upstream docs​

Next steps​