Put AI agents under your control.

Let agents use tools and make payments within the boundaries you set. Keep control of your data, funds, and critical operations.

What if…

A prompt tells your AI to grant admin?

Your agent reads a malicious ticket and tries to change access rights through its tools.You decide which actions your agent can take.Case and policy

Give an IT agent the tools it needs for a task. Keep role changes, deletions, and unrelated services outside its authority.

Let routine work run automatically and require your operator’s approval for production. A prompt can’t expand the permissions you set.

Choose what your agent can do

policy "agent-actions" {
    allow when {
        request.operation == "restart"
        request.service == "billing-api"
        request.environment in ["staging", "production"]
    }

    require operator if (request.environment == "production")
}

The agent changes the email you approved?

You approve an email to a customer. The agent then changes the recipient or message.You approve the email that actually goes out.Case and policy

Review the recipient and message before you authorize sending.

Let agents draft and send customer emails while you keep approval over the recipient and message. If either changes after review, require a fresh approval.

Keep control of what gets sent

authority "outbound-message" {
    intent = "custom"
    version = "1"

    input request {
        operation: Text
        recipient: Text
        subject: Text
        body: Text
    }

    approver operator {
        type = "public-key"
        id = "operator"
        algorithm = "ED25519"
        publicKey64 = "T9U4X0BiYmULPIhbIU8/Xs/qNOhY516SF35rDUevc+w="
    }

    policy "outbound-message" {
        allow when {
            request.operation == "email.send"
        }

        require operator
    }
}

Someone steals the agent’s mandate?

An agent receives a mandate to restart billing-api. An attacker copies it and tries to delete the service instead.A stolen mandate can’t expand the access you gave.Case and policy

Delegate one action at a time and choose how long that permission stays valid.

Keep control of the action, target, and parameters you authorize. Whoever holds the mandate can use it only for the original operation, within its lifetime.

Delegate one specific action

  1. Set the task

    Get a mandate for one exact action, including the target and parameters.

  2. Keep changes out of scope

    A different action, target, or parameter requires a new mandate.

  3. Choose its expiry

    Set how long the permission stays valid and collect the required approvals before use.

How mandates bind an operation

Security Model

Give agents a task. Set its boundaries.

Give each agent a defined set of actions and services. Let routine work run automatically, and ask for approval before it touches production.

Read the technical guide
Policy rulesagent-actions.edict
policy "agent-actions" {
    allow when {
        request.operation == "restart"
        request.service == "billing-api"
        request.environment in ["staging", "production"]
    }

    require operator if (request.environment == "production")
}

Set limits on agentic payments.

Control who agents can pay, which payment methods they can use, and how much each request can spend. TKeeper supports Google AP2 and Mastercard Verifiable Intent.

Read the technical guide

Limit what a breached host can do.

Distribute your agent’s signing identity across independent peers. Choose how many must participate before a protected action or payment can be signed.

How MPC works