ForgeToolRegistry (MRC-60 Phase 1)
Paid tool registry. Live on Arbitrum One and Base mainnet since 2026-05-09.
Source: registry-contracts/contracts/forge/ForgeToolRegistry.sol
Deployments
| Chain | Address |
|---|---|
| Arbitrum One | 0xa08ca3…13D2 |
| Base mainnet | 0x0c617b…45aC |
Purpose
Discoverable on-chain index of monetizable tools. Registration costs 1 MOR per tool, transferred to the Hypnex treasury in the same register() transaction. Per-call revenue is settled separately via ForgeEscrow (Phase 3).
Functions
register
solidity
function register(
bytes32 toolId,
string calldata manifestUri,
uint256 pricePerCall
) external;Pulls 1 MOR via transferFrom from the caller, stores the tool record, emits ToolRegistered. The 1 MOR fee is admin-settable but historically immutable.
tools(bytes32 toolId)
solidity
function tools(bytes32 toolId) external view returns (ToolRecord memory);Returns { owner, manifestUri, pricePerCall, registeredAt }.
updateManifest
solidity
function updateManifest(bytes32 toolId, string calldata newUri) external;Owner-only. Price is immutable post-registration; manifest URI can be updated.
Events
solidity
event ToolRegistered(bytes32 indexed toolId, address indexed owner, uint256 pricePerCall);
event ManifestUpdated(bytes32 indexed toolId, string newUri);Fee economics
- 1 MOR per registration → Hypnex treasury
- Treasury allocation policy: see
TREASURY_POLICY.md(40–60% stables, 25–40% MOR, 10–15% ETH, ≥5% cold, ≥18mo runway floor)
SDK
See hypnex-forge for TypeScript and Python wrappers.
See also
ForgeEscrow— paid-call settlement (Phase 3)hypnex-forgeSDK reference