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

swap

Inicia um swap de tokens (mesma chain ou cross-chain) a partir de uma das smart accounts picnic do usuário, via agregador de swaps da Picnic. Retorna um sign_url e um resource_uri pra atualizações em tempo real. A execução começa assim que o usuário assina.

O routing distribui entre CowSwap, 0x, Bungee, Squid, Li.Fi e deBridge. Por padrão, o agregador escolhe a melhor cotação; usa provider pra forçar uma fonte específica.

Restrição de source: só são aceitos sources do tipo picnic. O safe do cartão (gnosisPay) não é uma origem válida — pra converter fundos que estão na conta do cartão, primeiro faz transfer pra conta Picnic, depois faz swap.

Escopos necessários: propose:swap, execute:swap

Parâmetros:

NomeTipoObrig.Descrição
source_smart_account_addressstringsimSmart account picnic que detém o asset de origem. Tem que ser uma das contas controladas pela passkey em source_chain_id; sources gnosisPay são rejeitados. Usa get_smart_accounts pra descobrir endereços.
source_chain_idnumbersimChain ID da smart account de origem. Tem que ser igual à chainId codificada em from_asset_id — divergência é rejeitada.
from_asset_idstringsimasset_id de origem.
to_asset_idstringsimasset_id de destino. Pode estar em outra chain (cross-chain).
formatted_amountstringsimValor decimal do asset de origem.
slippagenumbernãoSlippage como fração (default 0.01 = 1%, máx. 0.5).
providerstringnãoForça provider — cowswap, 0x, lifi, bungee, squid, debridge. Default: melhor de todos.

Retorna:

CampoTipoDescrição
action_idstringUUID da action pendente.
statusstringSempre "proposed" imediatamente após esta chamada.
summarystringResumo legível.
sign_urlstringURL pra autorizar com a passkey.
resource_uristringpicnic://action/{action_id}.
simulation_urlstringURL de preview Tenderly.
expires_atdateTimestamp ISO; 10 minutos após criação.

Avisos de slippage: a página de assinatura mostra banner amarelo quando ≥1% e banner vermelho acima de 5%.

Ciclo de vida (status):

proposedsignedsubmittedbroadcastexecuted.

Exemplos de prompt:

"Faz swap de 100 USDC pra ETH na Base."

"Faz bridge de 50 USDC da Base pra USDC na Polygon."