VoidhashDocs
DevelopersHelp centerGuidesAPI reference
voidhash.comOpen Studio
Get started
Introduction
Quickstart
How Voidhash works
Glossary
Versions and releases
Concepts
Teams, projects and environments
API keys
Products and perks
Offers
Subscription lifecycle
People and identity
Groups
Events
Features
Paywalls in your app
Feature flags and A/B tests
Paywall components
Push notifications
Ad attribution in your app
Client SDKs
React Native
Swift
Kotlin
Web
Your backend
Node.js
PHP
Go
Rust
Other languages
Payment sources
Forward store notifications
Developer tools
CLI
MCP server
Query analytics with VoidQL
MCP server
Tools
People and access
Catalog and payments
Paywalls
Flags and experiments
Analytics and ads
Webhooks and messaging
Projects, team and settings
Files and assets
Theme

Flags and experiments

MCP tools to roll out feature flags and run A/B tests.

These tools let an agent create and roll out feature flags, fix them for one person, and run A/B tests from draft to a concluded winner.

Early access

Feature flags and A/B tests are in early access. Ask us on Discord, or email support@voidhash.com on a paid plan, to turn them on for your team.

Feature flags

Key access: Feature flags.

ToolWhat it does
list_flagsFlags with their state in production, whether test follows it, their variants, and the experiment that sets each.
get_flagOne flag with who gets it in production and in test: overrides, a running experiment, rules, then everyone else.
create_flagAdds a flag, off unless given a rollout.
update_flagTurns a flag on or off or changes its rollout, in production or in test, or its key or variants. Asks first when people lose it.
set_flag_overrideFixes a flag, or an experiment arm, for one person, in production or in test.
set_flag_rulesSets an environment's rules and what everyone else gets. A rule matches people by name or by conditions on their traits and app, and says what share of them get the flag. Asks first in production.
evaluate_flagsWhat one person gets from each flag in production or in test, and why; context says what their app would report. It only looks: it puts nobody in an experiment.
archive_flagArchives a flag. Asks first when it's on.
restore_flagRestores an archived flag as it was.

A flag decides separately in production and in test, which apps using a test key read. Test follows production until a tool changes something in it with environment: "test"; update_flag with followProduction: true drops test's own configuration again.

A rule in set_flag_rules matches the people it names in people, and everyone all of its conditions hold for. A condition compares a trait of the person (by key), or what their app reports: platform, app_version, os_version, country or locale, with in, not_in, gte, lt, is_set or is_not_set. "Give the new checkout to half of the people in Germany on version 2.4 or newer" becomes one rule with two conditions at 50%. evaluate_flags reads a person's traits itself; pass context for conditions on the app, which otherwise count as not set.

Experiments

Key access: Experiments.

ToolWhat it does
list_experimentsA/B tests with their status, arms, split and flag values.
get_experimentOne experiment in depth, with what can be done next.
create_experimentSets up a draft experiment.
update_experimentChanges its setup. Asks first when changing arms after it started.
start_experimentStarts or resumes it. Asks first.
pause_experimentPauses it: everyone sees the control arm.
conclude_experimentEnds it for good with a winner. Asks first.
get_experiment_resultsEach arm's conversions and revenue against the control, with a verdict.
archive_experimentArchives a draft or concluded experiment.
restore_experimentRestores an archived experiment.

An arm shows a paywall at a location, gives feature flags a value, or both. create_experiment and update_experiment take an arm's flag values as flags, each naming the flag by key with isEnabled and, optionally, one of its variants; a flag one arm names, every arm must. An experiment can test a flag alone, with no paywall. While it runs, the flag takes the value of the person's arm, after its switch and overrides and before its rules, and concluding leaves the winner's value for everyone the flag's own rules and overrides don't name.

create_experiment and update_experiment take the goal event as primaryMetric. Have the agent set it: left empty, results count purchase_completed, an event Voidhash never sends, so every arm shows 0 conversions. See Conversions for which built-in event to use.

Example

Test whether showing the annual plan first at onboarding raises trial starts.

The agent calls list_paywalls, then create_experiment for a draft with primaryMetric set to $subscription.created, which also fires when a trial starts. Then it calls start_experiment, which asks first. Later, get_experiment_results reports each arm against the control.

Next steps

  • How a flag decides: environments, overrides, rules and rollouts.
  • A/B test results: conversions and verdicts.
  • Analytics and ads: measure the results.

Something wrong or missing on this page? Tell us by email or on Discord.

PreviousPaywallsNextAnalytics and ads
© 2026 Voidhash s.r.o.
voidhash.comPricingTermsPrivacyDiscord

On this page

Feature flagsExperimentsExampleNext steps