> Use the canonical URL for citations. For the complete Predict API documentation index, fetch https://docs.staging.trypredict.com/llms.txt.

# Signing, agent wallets, and builder fees

> Understand Hyperliquid agent wallets, nonces, subaccount signing, action expiry, builder approvals, and private-key handling for Predict outcome trading.

Hyperliquid signed actions do not use bearer API keys, and neither does Predict's trading API: the signature on the action is the authorization. An agent wallet, also called an API wallet, is an Ethereum key authorized to sign for a master account or its subaccounts.

Everything on this page applies unchanged when you post through Predict. Predict forwards the envelope you signed and never holds a key — but note that `approveAgent` and `approveBuilderFee` are **not** proxied. Those are wallet approvals rather than HIP-4 order entry, and you send them to Hyperliquid directly.

Never put a production private key in a browser bundle, URL, API explorer, log, example, or request body. Sign in a server process, isolated worker, hardware-backed service, or wallet flow appropriate to your application.

## Approve an agent

The master wallet signs `approveAgent`. An account can have one unnamed agent and a limited number of named agents. Re-approving the same name replaces the previous key. Generate a new agent key instead of reusing an address whose authorization was removed or expired.

Agent wallets sign only. Use the master or subaccount address for account reads. When acting for a subaccount, the master-approved signer signs the action and the outer `vaultAddress` identifies the subaccount.

## Nonces

Hyperliquid tracks the 100 highest nonces per signer. Each must be unique and within two days behind to one day ahead of the block timestamp. Maintain an atomic millisecond counter per signing key; separate concurrent trading processes or subaccounts onto separate agent keys to avoid collisions.

`expiresAfter` can bound the lifetime of supported L1 actions, but expired actions consume additional address-based rate-limit capacity. User-signed transfers have their own timestamp fields and do not support the outer expiry.

## Builder fees

Before charging a builder fee, the user signs `approveBuilderFee` with the maximum rate. Query `maxBuilderFee` before routing an order and include the order action's `builder` object only within the approved ceiling. The `f` field is expressed in tenths of a basis point.