Pakt Docs

Statuses and Errors

The stable state vocabulary returned by Pakt MCP tools.

Each status describes what Pakt has completed and which effects have occurred. Read the full status name to distinguish approval, signing, and submission.

Read the Entire Status

Staged is not approved, signed is not submitted, and submitted is not settled. A proved refusal is a normal result; an infrastructure fault is not a refusal.

Authoring and Pakt Signer Approval

StatusMeaningAuthority changed?
DRAFT_NO_SIDE_EFFECTSCanonical draft and review artifacts were producedno
BROWSER_WALLET_APPROVAL_REQUIREDActivation is staged for Pakt signer review in the dashboardno
BROWSER_WALLET_DISABLE_REQUIREDTerminal disable is staged for Pakt signer review in the dashboardno
ACCOUNT_AUTHORIZATION_LIFECYCLEVerified account Pakt summaries were readno

Browser completion activates or disables the exact root. Confirm the resulting lifecycle_status with list_pakts; do not treat a staged challenge as the completed lifecycle change.

Authorization Results

StatusProofWallet signatureSubmitted
SIGNED_NOT_SUBMITTEDyesyesno
REFUSED_NOT_SIGNEDyesnono

Signed results include receipt_id, submission_type, and submission. Refused results include receipt_id and reason. Both are successful MCP tool results. A recovery-required fault includes the retained receipt and is an explicit do-not-retry result.

Other Successful Results

StatusMeaning
CATALOGUE_NO_SIDE_EFFECTSShipped authoring templates were listed
HYPERLIQUID_PERP_MARKET_CATALOGUELive market metadata was read; this is not account readiness or authorization
ACCOUNT_EXECUTION_CONTEXTActive roots and adapters were revalidated; wallet readiness is checked on proposal
COMPLETEDA client-reported terminal outcome was attached to a signed receipt

get_portfolio returns independent balance sections rather than this status envelope. Inspect null, per-section errors, freshness, and completeness instead of assuming every field is available.

Refusal Versus Fault

A refusal is a normal, proved policy result returned as a successful MCP tool result. A fault is a validation, dependency, persistence, or infrastructure failure returned as an MCP error. Do not report a fault as though the Pakt evaluated and refused the action.

The refusal's reason can be generic: it does not currently guarantee the violated constraint or its numeric threshold. Preserve the reason and receipt ID; do not present a guessed constraint as the proved diagnosis.

If a fault reports that signing authorization was already released, Pakt may already have authorized a wallet signature. Do not restart the operation. Reconcile the receipt and external venue state first.

Faults and Retry Safety

MCP tool faults set isError: true. Their decoded data includes outcome: "error", kind, and message. Recovery faults additionally identify the receipt and set authorization_released: true; retain the full fault rather than discarding those fields. Transport or authentication errors can occur outside this tool envelope.

Fault or conditionRequired handling
invalid_argumentCorrect the named input against the current schema. No policy verdict was produced.
waitlist / live_execution_not_enabledResolve account access; reconnecting or retrying does not upgrade it.
hyperliquid_setup_requiredComplete the browser's venue setup before proposing.
pakt_not_activeRe-read this account's execution context; do not substitute a different root without the user's choice.
execution_not_integratedThe deployment has no hosted authorization path. No proof or signature was produced; this is not a transient policy refusal.
account_proof_in_progressAnother operation for this account is proving or signing. This call started no additional proof or signature. Wait for the active operation to finish; retry an uncertain request exactly unchanged so durable replay returns its result, or refresh execution context before building a new proposal. Bundle related Hyperliquid trades instead of submitting them concurrently.
authorization_pendingAnother account authorization, lifecycle approval, or replacement cooldown must finish or be reconciled before this operation can proceed. Follow the returned message rather than retrying concurrently.
recovery_required or authorization_released: trueDo not re-propose, re-sign, or generate a replacement order. Reconcile the retained receipt and venue state.
internal, a disconnect, or a client timeoutThe outcome may be uncertain. Keep the exact request; inspect history and venue state before retrying. Absence of an authorization flag is not proof that signing never happened.

After a lost or ambiguous response, the server supports re-proposing the identical request under the same root, account, and environment so the durable backend can return the existing signed result or require recovery. Do not change the nonce, expiry, or any order field for this recovery attempt. Never use it to override a known recovery_required result or to repeat a submitted order.

An Ethereum token approval has no generic wall-clock expiry. Only consume or supersede its nonce through the appropriate wallet/venue process; do not treat a client timeout as permission to obtain another approval signature.

On this page