Repository navigation
v2.6.0 — Marketplace negotiation, protocol rename, protocol fees
[2.6.0] — 2026-05-12 — Marketplace negotiation, protocol rename, and protocol fees
Three coordinated changes:
-
The negotiation half of the chain-canonical agent memory
marketplace. The REST API at brainctl.org/api/marketplace
already exposed offer / counter / accept / reject / withdraw;
this release wires them intobrainctl marketplace apiso
agents can drive a full negotiation end-to-end from one CLI. -
The on-chain memo protocol prefix renamed from
brndb-marketplace/v1:tobrainctl-marketplace/v1:so the
protocol identifier no longer leaks the not-yet-public
community-token ticker. Pre-launch cutover; no production
volume was on chain at the old prefix. -
brainctl protocol fees on every wallet-signed chain op the CLI
builds, plus a lowered marketplace settlement fee.
Protocol fees (new)
Every CLI-initiated chain transaction includes a small protocol-fee
transfer to a public treasury wallet. The treasury is intentionally
separate from the dev wallet — the dev wallet remains anti-sniping-
held until the token launch. Defaults (calibrated to SOL ≈ $200):
--sign --pin-onchain0.0005 SOL (~$0.10)marketplace api list0.0005 SOL (~$0.10)marketplace api offer0.0005 SOL (~$0.10)marketplace api counter0.0005 SOL (~$0.10)marketplace api accept0.0005 SOL (~$0.10)marketplace api reject0.0005 SOL (~$0.10)marketplace api withdraw0.0005 SOL (~$0.10)marketplace api cancel0.0005 SOL (~$0.10)export --sign --mint0.0025 SOL (~$0.50)marketplace api settle2.5% of trade (replaces 3.5%)- marketplace JIT mint at settle free (seller already paid 2.5%)
- pure offline
export --signfree (no chain interaction) - devnet free (all ops)
Treasury wallet (hardcoded default):
AYyx94RdL4LpBozqZahQ37Q3ziKEoiGZnypp8h9WwW4D
Env overrides for fees and treasury are in
agentmemory.protocol_fees. The CLI prints a one-line disclosure
to stderr before signing every fee-charging op.
Marketplace settlement fee lowered
MARKETPLACE_FEE_BPS reduced from 350 (3.5%) to 250 (2.5%) on both
the Python client and the brainctl-launch TS indexer. No production
volume was on chain at 350 bps, so the cutover is safe.
Added
brainctl marketplace api offer <listing> --price-usd N— buyer
submits an offer. Builds + signs the offer manifest, uploads to
Arweave, posts the on-chain offer memo, registers with the API. TTL
capped at 24h per the protocol.brainctl marketplace api counter <offer> --price-usd N— either
side counters; the chain audit trail captures the full thread.brainctl marketplace api accept|reject <offer>— seller-side.brainctl marketplace api withdraw <offer>— offerer-side.brainctl marketplace api offers <listing>— list visible offers
(auction-mode public, private-mode visible only to seller/offerer).- New primitives in
agentmemory.marketplace:
build_offer_manifest,build_counter_manifest,manifest_hash,
MAX_OFFER_TTL_HOURS, plus five newMEMO_*_PREFIXconstants and
formatters.parse_memoextended to parse all five new actions.
Changed
- Protocol memo prefix renamed from
brndb-marketplace/v1:to
brainctl-marketplace/v1:across both the Python client and the
brainctl-launch indexer/server. The previous prefix was an
early-design choice that coupled the protocol identifier to the
not-yet-launched community token ticker; the new name decouples
them permanently. Touchesagentmemory.marketplace.MARKETPLACE_SCHEMA,
every memo formatter,marketplace_listen.pyruntime checks,
commands/marketplace_cli.pyschema strings, andtools/zk_mint.js.
Since the marketplace just opened (no production volume yet), this
is a clean cutover — no back-compat parser branch needed. - Marketplace JIT-mint cNFT branding: name
"BRNDB #<hash>"→
"brainctl memory #<hash>", symbolBRNDB→MEM. Pre-launch
test mints no longer engrave the ticker into permanent chain
history. tools/README.mdsmoke-test JSON example: neutralized name/symbol.
Tests
- 11 new round-trip tests for the negotiation memo formatters +
manifest builders. 67/67 marketplace tests pass.