# FAQ

Common questions about agent payments, the SDK and service MCPs.

## Agent spending scope

The agent cannot spend freely. It has no keys. The first time, the user approves limits (amount, runs, period), and payments run only inside them. The wallet contract enforces the limits on chain.

## Number of approvals

Once per mandate. Later payments inside it do not prompt. An exceeded limit returns an error: request an approved limit change or a new mandate. A different service or a call outside the approved scope needs a new mandate. If a period limit is used up, wait until the next window.

## Supported agent apps

Use a client supporting Streamable HTTP, OAuth dynamic client registration (DCR) and authorization code with PKCE. Hermes, Claude and Cursor setup is in [Connect an AI agent](/en/docs/agents/). The agent shows approval URLs as text links; MCP elicitation is not required.

## Moving from Privy and the wallet address

The address changes. Keys cannot be moved, so a new wallet is created. A migration kit helps users send their assets from the old wallet once. See [Move from Privy](/en/docs/privy-migration/).

## Gas fees

The app pays gas (ERC-4337 paymaster). Gas is never charged to the user's wallet. The app operator configures sponsorship budgets and per-operation limits.

## Service MCP operators

Each service builds and hosts its own, from the template and Docker image. A service must register its origin and contracts with the tenant before its intents are accepted.

## Subscription price changes

Charges must fit the approved amount, predicates and period limits. A user-approved `mandate.update` can increase total allowance, runs, duration or the per-run limit. It does not change target functions, argument predicates or period limits. A price beyond an approved `eq` or `lte` predicate, or a different period limit, needs a new mandate.

## Revoking and when payments stop

`revoke_mandate` immediately stops further agent and service payments through the gateway. If an on-chain revocation is needed, the user must approve its link to complete it. If no calls remain on chain, there is nothing left to execute and no further approval is needed. A service's `release` returns its merchant charge credential; it does not itself revoke the on-chain policy.

## App wallets

Wallets are separate per app by default, even when users sign in with the same account. Sharing requires the app operator to opt in.

## Using another device

Sign in with the same Pouchi account. If recovery is needed, use a passkey or recovery code in the Pouchi screen. Recovery is set up once per account, with no automatic server recovery. Check devices and recovery settings in [Pouchi Home](https://pouchi-home.vercel.app). See [Account and security](/en/docs/security/).

## Test assets

The SDK transfer example uses native test OKRW on Maroo Testnet (`chainId 450815`). Service demos may use a separate payment token; check the returned asset and balance before funding. For test funds or invite-only access, contact [business@pouchi.app](mailto:business@pouchi.app) with the wallet address and demo name.

## Package distribution

GitHub Packages in the shard-lab org; you need a `read:packages` token. Not on public npm yet.
