Picnic agents is in early access — read-only access only for now.
PT
Docs
Ferramentas
get_action_status

get_action_status

Lê o estado atual de uma action pendente ou passada pelo ID. Usa-se como fallback de polling quando o cliente MCP não renderiza notifications/resources/updated de picnic://action/{action_id}, ou para ressincronizar estado depois de uma desconexão.

Efeito colateral: quando chamada numa action em broadcast ou submitted, esta ferramenta consulta oportunisticamente o bundler/RPC pelo receipt do userOp e pode avançar o status para executed ou failed (e preencher tx_hash + block_number) antes de devolver. Best-effort e nunca lança — mas significa que esta ferramenta não é estritamente read-only.

Âmbito necessário: read:actions

Parâmetros:

NomeTipoObrigatórioDescrição
action_idstringsimID de uma action devolvida por transfer, swap ou qualquer uma das ferramentas card_*. A action tem de pertencer ao mesmo utilizador + cliente OAuth que a criou.

Devolve:

CampoTipoDescrição
action_idstringDevolvido como entrada.
typestringUm de "transfer", "swap", "cardFreeze", "cardUnfreeze", "cardLimitSet".
statusstringEstado atual — ver o enum abaixo.
summarystringResumo legível por humanos que o utilizador viu na página de assinatura.
chain_idnumberChain alvo da action.
smart_accountstringEndereço da smart account em que a action opera.
tx_hashstring | nullHash da tx on-chain. null até a reconciliação trazer o receipt.
user_op_hashstring | nullO userOpHash 4337. Calculado no momento da proposta e presente em qualquer action a partir daí (incluindo actions proposed/expired que nunca foram broadcast). Não inferir "esta action foi broadcast" só porque user_op_hash está presente — verifica broadcast_at ou status.
block_numbernumber | nullBloco onde a tx confirmou. Preenchido em conjunto com tx_hash.
errorstring | nullMensagem de erro se a action terminou em failed, ou se a RPC do bundler devolveu erro na submissão (nesse caso o status pode ainda ser submitted enquanto a reconciliação corre).
created_atdateQuando a ferramenta de ação criou a pending action.
expires_atdatePrazo da TTL para assinar.
signed_atdate | nullQuando o utilizador assinou (status passou a signed).
broadcast_atdate | nullQuando o bundler aceitou o userOp (status passou a broadcast).
executed_atdate | nullQuando o receipt on-chain chegou.
status_historyarrayAudit trail de todas as transições de estado.
status_history[].statusstringEstado nessa entrada (mesmo enum do status no topo).
status_history[].timestampdateQuando a transição aconteceu.
status_history[].detailstring | nullContexto opcional, ex.: mensagem de erro anexada a uma transição failed.

Enum de estado:

EstadoSignificado
proposedCriada pela ferramenta de ação, à espera da assinatura do utilizador.
signedUtilizador assinou; o endpoint de assinatura está a submeter a action.
submittedO userOp está a ser entregue à RPC do bundler (ou, para card actions, à API da Gnosis Pay). Persiste transitoriamente, ou até à reconciliação se a RPC errar a meio.
broadcastBundler aceitou, user_op_hash conhecido, à espera do receipt on-chain.
executedMineração bem-sucedida on-chain.
failedRevert on-chain.
expiredTTL expirou antes de o utilizador assinar.
rejectedUtilizador negou na página de assinatura.

Erros:

  • Action not found: … — o action_id não existe (ou foi retido para além da janela de 24 horas).
  • Action does not belong to the authenticated user / Action belongs to a different OAuth client — a action foi criada por outro utilizador/agente.
  • Erros de âmbito — o caller não tem read:actions.

Exemplo de pergunta:

"O meu swap passou?" — o agente chama get_action_status com o action_id mais recente.