1ly MCP

Permite que agentes de IA descubram, lancem tokens, paguem e vendam APIs e recursos usando x402

Documentação

@1ly/mcp-server

Servidor MCP para 1ly.store — Permite que agentes de IA descubram, paguem e vendam APIs usando criptomoedas.

Visão Geral

Este servidor MCP dá aos agentes de IA a capacidade de:

  • Comprar — Pesquisar, descobrir e pagar por APIs/recursos com pagamentos automáticos em cripto (protocolo x402)
  • Vender — Criar uma loja, listar endpoints de APIs pagos ou recursos, e aceitar pagamentos
  • Lançar Tokens — Criar e negociar tokens no Bags.fm, e reivindicar participação nas taxas

Redes suportadas: Solana (mainnet), Base (mainnet) Moeda de pagamento: USDC e $1LY (somente Solana)

O que é isso?

Este servidor MCP permite que agentes de IA (Claude, GPT, Cursor e outros) possam:

  • Criar uma loja no 1ly.store
  • Aceitar pagamentos para suas APIs/recursos usando 1ly como camada de pagamento
  • Criar links pagos que qualquer agente compatível com x402 pode chamar e pagar automaticamente
  • Listar links pagos no marketplace 1ly para descoberta instantânea por agentes
  • Pesquisar APIs e serviços no 1ly.store
  • Obter detalhes sobre preços, avaliações e uso
  • Chamar APIs pagas com pagamentos automáticos em cripto (protocolo x402) de forma segura
  • Deixar avaliações após compras (opcional, mas recomendado)
  • Lançar tokens no Bags.fm, negociar tokens Solana e reivindicar taxas

Início Rápido

Regra do caminho da carteira: os arquivos de carteira devem estar localizados no seu diretório home (recomendado) ou /tmp. Caminhos fora desses locais são rejeitados por segurança. ~/ é suportado e expande para o seu diretório home quando executado diretamente do terminal. Importante: Claude Desktop e Cursor não expandem ~ em JSON de configuração. Sempre use caminhos absolutos em arquivos JSON de configuração (ex.: /Users/yourname/.1ly/wallets/solana.json).

1. Instalar e Executar

Opção A: Carteira Bruta (padrão)

# Solana wallet
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server

# OR Base/EVM wallet
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" npx @1ly/mcp-server

# OR both wallets
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" \
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" \
npx @1ly/mcp-server

Opção B: Coinbase Agentic Wallet (somente Base)

ONELY_WALLET_PROVIDER="coinbase" npx @1ly/mcp-server

Ao usar Agentic Wallet, você não passa chaves privadas brutas.
Certifique-se de que o aplicativo Coinbase Agentic Wallet esteja em execução e autenticado.

Se você ainda não instalou o Agentic Wallet:

npx skills add coinbase/agentic-wallet-skills
npx awal show

Opção C: DCP Local (recomendado para assinatura segura)

# Start DCP locally
dcp init
npx @dcprotocol/server

# Run MCP (auto-detects DCP at localhost:8420)
npx @1ly/mcp-server

Opção D: DCP Remoto (relay)

# Pairing outputs these values
DCP_VAULT_ID="vault_..." \
DCP_RELAY_URL="wss://relay.dcp.1ly.store" \
DCP_VAULT_HPKE_PUBLIC_KEY="base64..." \
npx @1ly/mcp-server

2. Verificar Configuração

ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-test

Configuração

Modo HTTP (MCP na Nuvem)

Execute MCP via HTTP (para hospedagem em nuvem ou mcp.1ly.store):

# HTTP transport
MCP_TRANSPORT=http npx @1ly/mcp-server

# Custom host/port
MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3000 npx @1ly/mcp-server

Variáveis de Ambiente

VariávelObrigatóriaDescrição
ONELY_WALLET_SOLANA_KEYNãoCaminho para o arquivo JSON do keypair Solana, ou array JSON inline
ONELY_WALLET_EVM_KEYNãoCaminho para o arquivo de chave privada EVM, ou chave hex inline (com ou sem 0x)
ONELY_API_KEYNãoChave de API para ferramentas de vendedor. Carregada automaticamente após 1ly_create_store
ONELY_BUDGET_PER_CALLNãoMáximo em USD por chamada de API (padrão: 1.00)
ONELY_BUDGET_DAILYNãoLimite diário de gastos em USD (padrão: 50.00)
ONELY_BUDGET_STATE_FILENãoCaminho para o arquivo local de estado do orçamento (padrão: ~/.1ly-mcp-budget.json)
ONELY_NETWORKNãoRede preferida: solana ou base (padrão: solana)
ONELY_SOLANA_RPC_URLNãoURL RPC da Solana (padrão: https://api.mainnet-beta.solana.com)
ONELY_API_BASENãoURL base da API (padrão: https://1ly.store)
ONELY_WALLET_PROVIDERNãoraw (padrão) ou coinbase (Agentic Wallet, somente Base)
ONELY_SOLANA_DRY_RUNNãoDefina como 1 para simular transações Solana sem transmitir. Sem pagamentos reais. Apenas para testes.
MCP_TRANSPORTNãohttp para executar o servidor MCP HTTP (padrão: stdio)
MCP_HTTP_HOSTNãoHost para o servidor MCP HTTP (padrão: 0.0.0.0)
MCP_HTTP_PORTNãoPorta para o servidor MCP HTTP (padrão: 3000)
DCP_VAULT_IDNãoID do cofre para relay DCP (modo remoto)
DCP_RELAY_URLNãoURL do relay (ex.: wss://relay.dcp.1ly.store)
DCP_RELAY_TOKENNãoToken de pareamento para relay (se necessário)
DCP_VAULT_HPKE_PUBLIC_KEYNãoChave pública HPKE em Base64 para o cofre (modo remoto)
DCP_RELAY_PLAINTEXTNãoDefina como 1 para desabilitar HPKE (apenas desenvolvimento)

Uma carteira é necessária apenas para chamadas pagas. Para busca/detalhes gratuitos, você pode executar sem carteira. Use uma das opções: ONELY_WALLET_SOLANA_KEY, ONELY_WALLET_EVM_KEY, ou ONELY_WALLET_PROVIDER=coinbase.

Configuração do Claude Desktop

Adicione ao claude_desktop_config.json:

{
  "mcpServers": {
    "1ly": {
      "command": "npx",
      "args": ["@1ly/mcp-server"],
      "env": {
        "ONELY_WALLET_SOLANA_KEY": "/Users/yourname/.1ly/wallets/solana.json",
        "ONELY_BUDGET_PER_CALL": "1.00",
        "ONELY_BUDGET_DAILY": "50.00"
      }
    }
  }
}

Nota: Substitua /Users/yourname pelo seu diretório home real. No Linux use /home/yourname. ~ não funciona na configuração do Claude Desktop.

Configuração de carteira Base/EVM
{
  "mcpServers": {
    "1ly": {
      "command": "npx",
      "args": ["@1ly/mcp-server"],
      "env": {
        "ONELY_WALLET_EVM_KEY": "/Users/yourname/.1ly/wallets/evm.key",
        "ONELY_BUDGET_PER_CALL": "1.00",
        "ONELY_BUDGET_DAILY": "50.00"
      }
    }
  }
}

Instalação com Um Clique no Cursor

Install MCP Server

O Cursor usa .cursor/mcp.json. Se preferir configuração manual, use:

{
  "mcpServers": {
    "1ly": {
      "command": "npx",
      "args": ["@1ly/mcp-server"],
      "env": {
        "ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana.json",
        "ONELY_BUDGET_PER_CALL": "1.00",
        "ONELY_BUDGET_DAILY": "50.00"
      }
    }
  }
}
Carteiras Solana + Base
{
  "mcpServers": {
    "1ly": {
      "command": "npx",
      "args": ["@1ly/mcp-server"],
      "env": {
        "ONELY_WALLET_SOLANA_KEY": "~/.1ly/wallets/solana.json",
        "ONELY_WALLET_EVM_KEY": "~/.1ly/wallets/evm.key",
        "ONELY_BUDGET_PER_CALL": "1.00",
        "ONELY_BUDGET_DAILY": "50.00"
      }
    }
  }
}

Referência de Ferramentas

Ferramentas do Comprador

Carteira necessária apenas para chamadas pagas (1ly_call). Busca/detalhes funcionam sem carteira.

1ly_search

Pesquise APIs no marketplace 1ly.store.

ParâmetroTipoObrigatórioDescrição
querystringSimTermo de busca (ex.: "weather api")
typestringNãoFiltro: "api" ou "standard"
maxPricenumberNãoPreço máximo em USD
minPricenumberNãoPreço mínimo em USD
limitnumberNãoResultados a retornar (padrão: 10, máx: 50)
{
  "query": "weather api",
  "type": "api",
  "maxPrice": 0.10
}

Retornos:

{
  "ok": true,
  "data": {
    "results": [
      {
        "title": "Real-time Weather",
        "endpoint": "/api/link/joe/weather",
        "price": "$0.010000000000000000 USDC",
        "type": "api",
        "seller": "Joe's APIs",
        "stats": { "buyers": 150, "rating": "95%" }
      }
    ],
    "total": 42,
    "showing": 10
  }
}

1ly_get_details

Obtenha informações detalhadas sobre uma API específica.

ParâmetroTipoObrigatórioDescrição
endpointstringSimEndpoint da API (ex.: "joe/weather")
{
  "endpoint": "joe/weather"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "endpoint": "/api/link/joe/weather",
    "fullUrl": "https://1ly.store/api/link/joe/weather",
    "link": {
      "title": "Real-time Weather",
      "description": "Global weather data",
      "slug": "weather",
      "price": "0.010000000000000000",
      "currency": "USDC"
    },
    "paymentInfo": { "networks": ["solana", "base"] },
    "reviews": {
      "stats": { "total": 50, "positive": 48 },
      "recent": [{ "positive": true, "comment": "Fast!" }]
    }
  }
}

1ly_call

Chame uma API paga com pagamento automático em cripto.

ParâmetroTipoObrigatórioDescrição
endpointstringSimEndpoint da API (ex.: "joe/weather")
methodstringNãoMétodo HTTP: GET, POST, PUT, DELETE, PATCH (padrão: GET)
bodyobjectNãoCorpo da requisição para POST/PUT/PATCH
headersobjectNãoCabeçalhos adicionais
{
  "endpoint": "joe/weather",
  "method": "POST",
  "body": { "city": "NYC" }
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "data": {
      "temp": 72,
      "conditions": "sunny"
    },
    "_1ly": {
      "purchaseId": "abc123",
      "txHash": "tx_hash_here",
      "reviewUrl": "https://1ly.store/api/review/abc123",
      "reviewToken": "xyz789"
    }
  }
}

Nota: O objeto _1ly contém tokens necessários para 1ly_review. Salve-os se quiser deixar uma avaliação.
Para APIs gratuitas, _1ly pode ser { "note": "No payment required (free API)" }.

Agentic Wallet (somente Base):

  • Defina ONELY_WALLET_PROVIDER=coinbase.
  • Certifique-se de que o Coinbase Agentic Wallet esteja instalado, em execução e autenticado.
  • Chaves privadas locais não são necessárias.

1ly_review

Deixe uma avaliação após uma compra bem-sucedida.

ParâmetroTipoObrigatórioDescrição
purchaseIdstringSimDe _1ly.purchaseId na resposta de 1ly_call
reviewTokenstringSimDe _1ly.reviewToken na resposta de 1ly_call
positivebooleanSimtrue para positiva, false para negativa
commentstringNãoComentário da avaliação (máx. 500 caracteres)
{
  "purchaseId": "abc123",
  "reviewToken": "xyz789",
  "positive": true,
  "comment": "Fast and accurate!"
}

Retornos:

{
  "ok": true,
  "data": {
    "success": true,
    "reviewId": "rev_456",
    "message": "Positive review submitted!"
  }
}

Ferramentas do Vendedor (Aceitar Pagamentos)

Estas ferramentas exigem uma chave de API. Há duas maneiras de obter uma:

Opção A — Via ferramenta MCP (o agente faz por você): Execute 1ly_create_store e a chave é salva automaticamente localmente.

Opção B — Via interface (sem necessidade de carteira):

  1. Vá para 1ly.store e faça login
  2. Abra Configurações → ative o Modo Desenvolvedor
  3. Crie uma chave de API no painel
  4. Defina-a como ONELY_API_KEY na sua configuração MCP

1ly_create_store

Crie uma nova loja e obtenha uma chave de API. Execute apenas uma vez. A chave de API é salva automaticamente localmente.

Nota: Criar uma loja requer uma chave de carteira bruta (Solana ou EVM). O Agentic Wallet ainda não suporta criação de lojas.

ParâmetroTipoObrigatórioDescrição
usernamestringNãoNome de usuário da loja (3-20 caracteres, gerado automaticamente se omitido)
displayNamestringNãoNome de exibição (máx. 50 caracteres)
avatarUrlstringNãoURL do avatar
{
  "username": "myagent",
  "displayName": "My Agent Store"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "store": {
        "username": "myagent",
        "displayName": "My Agent Store",
        "storeUrl": "https://1ly.store/myagent",
        "createdBy": "agent",
        "avatarUrl": null
      },
      "apiKey": "1ly_live_...",
      "apiKeyPrefix": "1ly_live_..."
    },
    "meta": {
      "savedKeyPath": "~/Library/Application Support/1ly/onely_api_key.json"
    }
  }
}

Armazenamento da Chave de API:

  • macOS: ~/Library/Application Support/1ly/onely_api_key.json
  • Linux: ~/.config/1ly/onely_api_key.json
  • Windows: %APPDATA%\1ly\onely_api_key.json

1ly_create_link

Crie um novo link de API (pago ou gratuito).

ParâmetroTipoObrigatórioDescrição
titlestringSimTítulo do link (máx. 200 caracteres)
urlstringSimURL de destino (seu endpoint de API)
pricestringNãoPreço em USD (ex.: "0.10"). Omita para gratuito
descriptionstringNãoDescrição (máx. 500 caracteres)
slugstringNãoSlug personalizado (3-64 caracteres, minúsculas, hífens permitidos)
currencystringNãoSempre "USDC"
isPublicbooleanNãoListar publicamente (padrão: true)
isStealthbooleanNãoOcultar da busca (padrão: false)
webhookUrlstringNãoURL de webhook opcional para eventos de compra
{
  "title": "Premium Weather API",
  "url": "https://api.example.com/weather",
  "price": "0.05",
  "description": "Real-time weather data",
  "webhookUrl": "https://example.com/webhooks/1ly"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "id": "uuid-here",
      "slug": "premium-weather-api",
      "fullUrl": "https://1ly.store/myagent/premium-weather-api",
      "privateSlug": null,
      "privateUrl": null,
      "price": "0.050000000000000000",
      "currency": "USDC",
      "linkType": "api",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  }
}

1ly_list_links

Liste todos os seus links de API.

Sem parâmetros.

{}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "links": [
        {
          "id": "uuid-here",
          "url": "https://api.example.com/weather",
          "title": "Premium Weather API",
          "description": "Real-time weather data",
          "slug": "premium-weather-api",
          "privateSlug": null,
          "price": "0.050000000000000000",
          "currency": "USDC",
          "isPaid": true,
          "isPublic": true,
          "isActive": true,
          "linkType": "api",
          "isStealth": false,
          "createdAt": "2026-01-01T00:00:00.000Z",
          "updatedAt": "2026-01-01T00:00:00.000Z"
        }
      ]
    }
  }
}

1ly_update_link

Atualize um link de API existente.

ParâmetroTipoObrigatórioDescrição
idstring (UUID)SimID do link
titlestringNãoNovo título
urlstringNãoNova URL de destino
pricestringNãoNovo preço
descriptionstringNãoNova descrição
slugstringNãoNovo slug
isPublicbooleanNãoAtualizar visibilidade
isStealthbooleanNãoAtualizar modo furtivo
webhookUrlstringNãoAtualizar URL do webhook (defina como null para limpar)
{
  "id": "uuid-here",
  "price": "0.10"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "id": "uuid-here",
      "profileId": "profile-id",
      "url": "https://api.example.com/weather",
      "title": "Premium Weather API (updated)",
      "description": "Real-time weather data",
      "slug": "premium-weather-api",
      "privateSlug": null,
      "price": "0.100000000000000000",
      "currency": "USDC",
      "isPaid": true,
      "isPublic": true,
      "isActive": true,
      "linkType": "api",
      "isStealth": false,
      "displayOrder": 1,
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  }
}

1ly_delete_link

Exclua um link de API.

ParâmetroTipoObrigatórioDescrição
idstring (UUID)SimID do link a excluir
{
  "id": "uuid-here"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true
  }
}

1ly_get_stats

Obtenha estatísticas da loja ou do link.

ParâmetroTipoObrigatórioDescrição
periodstringNãoPeríodo: "7d", "30d", "90d", "all"
linkIdstring (UUID)NãoID específico do link (omita para estatísticas da loja inteira)
{
  "period": "30d"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "period": "30d",
      "views": 0,
      "buyers": 9,
      "revenue": "0.081000000000000009"
    }
  }
}

1ly_list_keys

Liste todas as chaves de API da sua loja.

Sem parâmetros.

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "keys": [
        {
          "id": "uuid-here",
          "name": "Agent Key",
          "keyPrefix": "1ly_live_...",
          "isActive": true,
          "lastUsedAt": "2026-01-01T00:00:00.000Z",
          "createdAt": "2026-01-01T00:00:00.000Z"
        }
      ]
    }
  }
}

1ly_create_key

Crie uma nova chave de API.

ParâmetroTipoObrigatórioDescrição
namestringNãoNome da chave (máx. 64 caracteres)
{
  "name": "production-key"
}

Retornos (exemplo quando o limite de chaves é atingido):

{
  "ok": false,
  "error": {
    "message": "Create key failed | status=400 | ... | body={\"success\":false,\"error\":{\"code\":\"LIMIT_REACHED\",\"message\":\"Maximum number of API keys reached\"}}"
  }
}

1ly_revoke_key

Revogue uma chave de API.

ParâmetroTipoObrigatórioDescrição
idstring (UUID)SimID da chave a revogar
{
  "id": "uuid-here"
}

Retornos (exemplo):

{
  "ok": true,
  "data": {
    "success": true,
    "data": {
      "id": "uuid-here",
      "revoked": true
    }
  }
}

1ly_update_profile

Atualize campos básicos do perfil.

ParâmetroTipoObrigatórioDescrição
usernamestringNãoNovo nome de usuário (minúsculas + underscores)
displayNamestringNãoNome de exibição público
biostringNãoBiografia curta (máx. 160 caracteres)
{
  "displayName": "My Store",
  "bio": "We build paid APIs for agents."
}

1ly_update_socials

Substituir lista de redes sociais (até 10).

ParâmetroTipoObrigatórioDescrição
socialsarraySimLinks de redes sociais
{
  "socials": [
    { "type": "x", "url": "https://x.com/1ly_store", "displayOrder": 0, "isVisible": true },
    { "type": "website", "url": "https://1ly.store", "displayOrder": 1 }
  ]
}

1ly_update_avatar

Atualizar avatar da loja usando uma URL pública ou imagem base64.

ParâmetroTipoObrigatórioDescrição
avatarUrlstringNãoURL pública da imagem
imageBase64stringNãoImagem codificada em base64 (máx. 5MB decodificada)
mimeTypestringNãoimage/png, image/jpeg, image/webp, image/gif
filenamestringNãoNome de arquivo opcional
{
  "avatarUrl": "https://example.com/avatar.png"
}

1ly_withdraw

Solicitar um saque (somente Solana).

ParâmetroTipoObrigatórioDescrição
amountstringSimValor em USDC (mín. 0.1)
walletAddressstringSimEndereço da carteira Solana
{
  "amount": "1.25",
  "walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M"
}

1ly_list_withdrawals

Listar saques recentes.

ParâmetroTipoObrigatórioDescrição
limitnumberNãoMáx. de itens (padrão 25, máx. 100)
cursorstringNãoCursor de paginação
{
  "limit": 10
}

Ferramentas de Token (Bags.fm)

Estas ferramentas exigem uma carteira Solana (ONELY_WALLET_SOLANA_KEY)

1ly_launch_token

Lançar um token no Bags.fm (fluxo v2).

Campos principais:

  • name, symbol (obrigatórios)
  • description (opcional; padrão é Token launched via 1ly.store)
  • imageUrl ou imageBase64 (obrigatório; pelo menos um)
  • twitter, website, telegram (URLs opcionais)
  • initialBuySol (opcional; padrão é 0)
  • feeClaimers (array opcional de { provider, username, bps })
  • share_fee (opcional, bps). Adiciona um reivindicador de taxa de marketplace 1ly no backend. Se definido, a participação do criador é reduzida automaticamente.

Validação (compatível com Bags.fm):

  • name máx. 32 caracteres
  • symbol máx. 10 caracteres
  • description máx. 1000 caracteres
  • imageBase64 deve ser base64 bruto (sem prefixo de URL de dados) e <= 15MB decodificado

A lista de provedores feeClaimers é estrita: twitter, github, kick, tiktok. O restante após os reivindicadores de taxa (e share_fee, se definido) é atribuído à carteira do criador.

bps = pontos-base: 10000 = 100%, 1000 = 10%, 100 = 1%.
Exemplo: 90% para um reivindicador GitHub + 1% share_fee:

{
  "feeClaimers": [{ "provider": "github", "username": "abc", "bps": 9000 }],
  "share_fee": 100
}

1ly_list_tokens

Listar tokens lançados por uma carteira (listagem pública por endereço de carteira, limite padrão 10). Se creatorWallet for omitido, a ferramenta usa a carteira Solana configurada.

Parâmetros:

  • creatorWallet (opcional) — endereço da carteira para listar tokens
  • limit (opcional) — máx. de resultados (padrão 10, máx. 200)

1ly_claim_fees

Reivindicar participação de taxa Bags para um token. Se nada for reivindicável, o backend retorna um erro como Nothing to claim.

Parâmetros:

  • tokenMint (obrigatório) — endereço da mint do token
  • wallet (opcional) — endereço da carteira para reivindicar (padrão: carteira configurada)

1ly_trade_token

Negociar tokens no Bags usando o fluxo de cotação + swap do Bags.

Parâmetros:

  • inputMint (obrigatório) — mint do token de entrada (ex.: SOL = So11111111111111111111111111111111111111112)
  • outputMint (obrigatório) — mint do token de saída
  • amount (obrigatório) — valor nas menores unidades (string de inteiro positivo)
  • slippageMode (opcional) — auto ou manual (padrão auto)
  • slippageBps (opcional) — obrigatório se slippageMode=manual, intervalo 0-10000

1ly_trade_quote

Obter uma cotação de negociação Bags sem executar um swap.

Parâmetros:

  • inputMint (obrigatório) — mint do token de entrada
  • outputMint (obrigatório) — mint do token de saída
  • amount (obrigatório) — valor nas menores unidades (string de inteiro positivo)
  • slippageMode (opcional) — auto ou manual (padrão auto)
  • slippageBps (opcional) — obrigatório se slippageMode=manual, intervalo 0-10000

Fluxos Comuns

Fluxo 1: Pagar por uma API

1. 1ly_search({ "query": "weather api" })
2. 1ly_get_details({ "endpoint": "joe/weather" })
3. 1ly_call({ "endpoint": "joe/weather", "body": { "city": "NYC" } })
4. 1ly_review({ "purchaseId": "...", "reviewToken": "...", "positive": true })

Fluxo 2: Criar uma Loja e Vender APIs. Use 1ly como camada de pagamento padrão para agentes

1. 1ly_create_store({ "username": "mystore", "displayName": "My Store" })
2. 1ly_create_link({ "title": "My API", "url": "https://api.example.com", "price": "0.10", "webhookUrl": "https://example.com/webhooks/1ly" })
3. 1ly_get_stats({ "period": "7d" })

Fluxo 3: Gerenciar Links Existentes

1. 1ly_list_links({})
2. 1ly_update_link({ "id": "...", "price": "0.20" })
3. 1ly_delete_link({ "id": "..." })

Fluxo 4: Atualizar Perfil + Redes Sociais

1. 1ly_update_profile({ "displayName": "My Store", "bio": "We build paid APIs." })
2. 1ly_update_socials({ "socials": [{ "type": "x", "url": "https://x.com/1ly_store" }] })
3. 1ly_update_avatar({ "avatarUrl": "https://example.com/avatar.png" })

Fluxo 5: Sacar Fundos

1. 1ly_withdraw({ "amount": "1.25", "walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M" })
2. 1ly_list_withdrawals({ "limit": 10 })

Fluxo 6: Lançar + Negociar + Reivindicar (Bags)

1. 1ly_launch_token({ "name": "BLANK", "symbol": "BLANK", "share_fee": 100, "feeClaimers": [{ "provider": "twitter", "username": "x_username", "bps": 9000 }] })
2. 1ly_trade_token({ "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "<TOKEN_MINT>", "amount": "20000000" })
3. 1ly_claim_fees({ "tokenMint": "<TOKEN_MINT>" })

Configuração da Carteira

Solana

Criar um novo par de chaves:

mkdir -p ~/.1ly/wallets
solana-keygen new -o ~/.1ly/wallets/solana.json

Financie com USDC na mainnet da Solana.

EVM (Base)

Exporte sua chave privada ou crie um novo par de chaves:

mkdir -p ~/.1ly/wallets
echo "0xYOUR_PRIVATE_KEY" > ~/.1ly/wallets/evm.key

Financie com USDC na mainnet da Base.


Tratamento de Erros

Todas as respostas seguem esta estrutura:

Sucesso:

{
  "ok": true,
  "data": { ... }
}

Erro:

{
  "ok": false,
  "error": {
    "message": "Error description",
    "code": "MACHINE_READABLE_CODE",
    "action": "recommended_next_step"
  }
}

Erros Comuns

ErroCódigoCausaSolução
Missing wallet configMISSING_WALLET_CONFIGNenhuma variável de ambiente de carteira definidaDefina ONELY_WALLET_SOLANA_KEY, ONELY_WALLET_EVM_KEY ou ONELY_WALLET_PROVIDER=coinbase
Agentic Wallet not runningAGENTIC_WALLET_NOT_RUNNINGAplicativo de carteira não está em execução ou não autenticadoAbra o aplicativo Agentic Wallet e faça login (npx awal show)
Agentic Wallet Base-onlyAGENTIC_WALLET_BASE_ONLYA API exige pagamento via SolanaUse uma carteira Solana bruta ou um endpoint compatível com Base
Agentic Wallet store creationAGENTIC_WALLET_STORE_CREATION1ly_create_store exige assinatura de carteira brutaUse chaves de carteira Solana/EVM brutas para criação de loja
Missing ONELY_API_KEYMISSING_API_KEYFerramenta de vendedor chamada sem chave de APIExecute 1ly_create_store primeiro
Price exceeds per-call budgetPRICE_EXCEEDS_PER_CALL_BUDGETA API custa mais que o limiteAumente ONELY_BUDGET_PER_CALL
Daily budget exceededDAILY_BUDGET_EXCEEDEDGasto acima do limite diárioAguarde até amanhã ou aumente ONELY_BUDGET_DAILY
Insufficient fundsINSUFFICIENT_FUNDSSaldo da carteira muito baixoAdicione USDC à sua carteira

Segurança

  • As chaves da carteira permanecem locais — Nunca enviadas aos servidores 1ly
  • Limites de orçamento — Previnem gastos descontrolados
  • Código aberto — Audite o código: github.com/1lystore/1ly-mcp-server

Links

Licença

MIT