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

get_action_status

Lê o status atual de uma action pendente ou passada pelo ID. Usa como fallback de polling quando o cliente MCP não renderiza notifications/resources/updated de picnic://action/{action_id}, ou pra ressincronizar status 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 pra executed ou failed (e preencher tx_hash + block_number) antes de retornar. Best-effort e nunca dá throw — mas significa que esta ferramenta não é estritamente read-only.

Escopo necessário: read:actions

Parâmetros:

NomeTipoObrigatórioDescrição
action_idstringsimID de uma action retornada por transfer, swap ou qualquer uma das ferramentas card_*. A action precisa pertencer ao mesmo usuário + cliente OAuth que a criou.

Retorna:

CampoTipoDescrição
action_idstringDevolvido como entrada.
typestringUm de "transfer", "swap", "cardFreeze", "cardUnfreeze", "cardLimitSet".
statusstringStatus atual — veja o enum abaixo.
summarystringResumo legível por humanos que o usuário 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. Computado no momento da proposta e presente em qualquer action a partir daí (incluindo actions proposed/expired que nunca foram broadcast). Não inferir "essa action foi broadcast" só porque user_op_hash tá presente — checa broadcast_at ou status.
block_numbernumber | nullBloco onde a tx confirmou. Preenchido junto com tx_hash.
errorstring | nullMensagem de erro se a action terminou em failed, ou se a RPC do bundler retornou erro na submissão (nesse caso o status ainda pode ser submitted enquanto a reconciliação roda).
created_atdateQuando a ferramenta de ação criou a pending action.
expires_atdateDeadline da TTL pra assinar.
signed_atdate | nullQuando o usuário assinou (status passou pra signed).
broadcast_atdate | nullQuando o bundler aceitou o userOp (status passou pra broadcast).
executed_atdate | nullQuando o receipt on-chain chegou.
status_historyarrayAudit trail de todas as transições de status.
status_history[].statusstringStatus 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 status:

StatusSignificado
proposedCriada pela ferramenta de ação, esperando a assinatura do usuário.
signedUsuário assinou; o endpoint de assinatura tá submetendo a action.
submittedO userOp tá sendo entregue pra RPC do bundler (ou, pra card actions, pra API da Gnosis Pay). Permanece transitoriamente, ou até a reconciliação se a RPC errar no meio.
broadcastBundler aceitou, user_op_hash conhecido, esperando o receipt on-chain.
executedMineração bem-sucedida on-chain.
failedRevert on-chain.
expiredTTL expirou antes do usuário assinar.
rejectedUsuário negou na página de assinatura.

Erros:

  • Action not found: … — o action_id não existe (ou foi retido 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 usuário/agente.
  • Erros de escopo — caller tá sem read:actions.

Exemplo de pergunta:

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