---
name: laso-finance
description: Use Laso to buy prepaid or gift cards, send payments, manage a Laso account, or pay an x402 endpoint with USDC.
homepage: https://laso.finance
user-invocable: true
metadata:
  author: laso-finance
  mintlify-proj: lasofinance
  version: "1.0"
  credentialsPath: ~/.laso/credentials.json
  openclaw:
    emoji: "💵"
    category: finance
    primaryEnv: LASO_API_KEY
---

# Laso Finance

{/* LASO-DOCS-VERSION:START (auto-generated by scripts/generate-docs-version.js, do not edit) */}
_Docs version `5676e73cb1f3`. This is a content hash of the Laso Finance agent docs. If it differs from the live version at https://laso.finance/.well-known/docs-version.json, your cached copy is stale. Refetch to get the current docs._
{/* LASO-DOCS-VERSION:END */}

Connect once, then load only the reference for the requested task. Setup does
not require a purchase, a deposit, or reading the full API specification.

## Choose your connection

- **Laso MCP tools are already available:** call `announce_connection` with
  your name. Its `wallet` result includes funding state. Then use the tool for
  your task; skip the shell setup below. MCP handles authentication and payment.
- **You are in the human's signed-in Laso browser:** use available WebMCP tools
  as that user. No separate credential setup is needed. See the
  [WebMCP guide](https://agents.laso.finance/guides/webmcp) for supported actions.
- **You have a shell, Python 3, and outbound HTTPS:** use the setup helper below.
  It has no package dependencies. Reuse an installed copy instead of downloading
  it every session.
- **You already pay from your own wallet (x402 or MPP):** use
  [wallet-native authentication](https://laso.finance/skills/laso-finance/references/wallet-native.md).
  You do not need a managed Laso key or a second wallet.
- **Your chat has no shell or API-capable connector:** use the harness's supported
  connector installation flow. Reading this page alone does not install tools
  or grant account access.

## Connect with the setup helper

Credentials live at `~/.laso/credentials.json`. The helper checks this file before
onboarding, reuses a token with at least 60 seconds remaining, and renews an
expired token. It saves credentials atomically with owner-only permissions,
announces your connection, and returns the wallet's funding state. It never
prints API keys, session tokens, or refresh tokens.

**First use:** a registry-installed skill includes `scripts/setup.py`; run that
copy. If you only have this URL, download the helper once:

```bash
curl -fsS --create-dirs https://laso.finance/skills/laso-finance/scripts/setup.py -o ~/.laso/setup.py
```

Run it with the name you want your human to see:

```bash
python3 ~/.laso/setup.py --agent-name "Claude Code" --skill-dir ~/.claude/skills/laso-finance
```

`--skill-dir` is the directory in which **your framework** discovers this skill.
The example is for Claude Code. Pass your framework's actual directory when
different. The helper installs `SKILL.md` there and keeps itself at
`~/.laso/setup.py`. Product references stay online and load only when needed;
registry installations also include local copies under `references/`.

**Key supplied by your human:** the helper reads `LASO_API_KEY` if your harness
already provides it. Otherwise add `--key-stdin` and supply the key through the
execution tool's stdin; an interactive terminal prompts with hidden input.
Never put a literal key in a command argument, a repository, an instruction
file, or your reply. A new key does not reuse the old key's cached session.

**Hosted chat:** omit `--skill-dir` unless the harness provides a supported,
persistent skill directory. Files saved in a temporary execution environment
last only as long as that environment. Report a session connection accurately;
do not claim a permanent installation or edit project instructions to simulate
one. If execution or network access is unavailable, use a supported connector.

**Returning session:** one command refreshes credentials if needed and reports
the connection. No download, installation, or memory edits are needed:

```bash
python3 ~/.laso/setup.py --agent-name "YOUR AGENT NAME"
```

The result is one JSON object containing `status`, `user_id`, `wallet`,
`credentials_path`, `helper_path`, and `skill_path` (null when installation was
not requested). A newly minted session also includes `auth_url`.

- `status: "connected"`: setup is complete. Give `auth_url` to your human if
  present, exactly as returned. Do not open it; it is their single-use login.
- `wallet.has_wallet: false`: direct your human to
  https://laso.finance/agent/dashboard to finish wallet setup.
- `wallet.needs_funding: true`: give the full `wallet.wallet_address` and say
  **USDC on Solana**. A `user_id` such as `usr_...` is not a deposit address.
- `status: "error"`: act on the error. Do not restart signup for an existing
  account. A rejected key requires a replacement; a filesystem/network error
  requires that capability to be available in this harness.

If the user only requested setup, return the connection result and stop. Funding
and purchases happen when requested.

## No account yet

Only use this path when there is no saved credential, no key supplied by your
human, and they want a new account. The helper preserves an existing account
even if `--signup` is passed.

```bash
python3 ~/.laso/setup.py --signup --agent-name "YOUR AGENT NAME"
```

Your next message must contain the returned `claim_url` verbatim. The human
opens it to create and own the account. Do not open it yourself. Then run:

```bash
python3 ~/.laso/setup.py --claim --agent-name "YOUR AGENT NAME"
```

This waits once, for up to about a minute. If it returns `awaiting_human`, run
`--claim` again while waiting for the human; no additional sleep is needed.
Other errors are terminal for that attempt. A 410 means the claim expired;
`--signup` creates a fresh link after expiry. On success, the helper immediately
saves the one-time API key and session, then reads the wallet. Signup already
records the connection, so it does not announce again.

## Do the requested task

API base: `https://laso.finance`, for routes and managed-wallet callables alike
(`https://laso.finance/<name>`).
For HTTP requests, use the cached `id_token` as a Bearer token. Load it in the
same shell operation as the request; separate tool calls may use fresh shells:

```bash
curl -fsS https://laso.finance/get-account-balance \
  -H "Authorization: Bearer $(jq -r .id_token ~/.laso/credentials.json)"
```

The helper needs only Python 3; this optional curl example also uses `jq`.
Use your existing HTTP client if those tools are unavailable.

| Task                                                                                         | Load this reference only when needed                                                  |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| Pay with the managed wallet, pay an external x402 URL, transfer USDC, saved recipients       | [Payments](https://laso.finance/skills/laso-finance/references/payments.md)           |
| Order or manage prepaid cards, retrieve card details, card transactions, merchant acceptance | [Cards](https://laso.finance/skills/laso-finance/references/cards.md)                 |
| Search and buy gift cards                                                                    | [Gift cards](https://laso.finance/skills/laso-finance/references/gift-cards.md)       |
| Send to debit cards, Venmo, PayPal, or bank accounts                                         | [Payouts](https://laso.finance/skills/laso-finance/references/payouts.md)             |
| Open bank accounts, complete banking applications, manage bank recipients                    | [Banking](https://laso.finance/skills/laso-finance/references/banking.md)             |
| Account balance, verification links/status, withdrawals, webhooks, dashboard links, feedback | [Account](https://laso.finance/skills/laso-finance/references/account.md)             |
| Authenticate with your own wallet, use Locus, pay with x402 or MPP                           | [Wallet-native](https://laso.finance/skills/laso-finance/references/wallet-native.md) |

For managed paid actions, load Payments along with the product reference on
first use. Pay through `agentX402Pay`; do not build a payment header yourself.
MCP's dedicated paid tools already handle payment and do not need that extra
call. For an exact schema, consult https://laso.finance/openapi.json only when
the tool schema or task reference does not answer the question.

## Essential payment rules

- **Fees are added to the requested amount.** Budget for the total price;
  requesting the entire wallet balance as face value will fail.
- **USA cards need two steps:** `/get-card` returns a pending `card_id`, not
  card numbers. Poll `/get-card-data?card_id=...` every 2–3 seconds until
  `status: "ready"` (usually about 7–10 seconds). Continue this work yourself;
  the pending ID is not the finished purchase.
- **International cards are queued**, typically for fulfillment within 24
  hours. Report that state and use status checks or webhooks; do not poll them
  every few seconds like USA cards.
- **Gift-card amounts use the product's currency.** Use the catalog's country,
  currency, and denomination limits, not an assumed USD amount.
- **Identity verification belongs to the human.** Return the verification link
  and check status; never fill in a hosted identity form for them.
- **Do not blindly repeat a paid request after a timeout or ambiguous error.**
  Check whether the original purchase/payment completed first. The setup
  helper retries only an expired cached session once; it never makes payments.

## Updates and support

Check https://laso.finance/.well-known/docs-version.json before using cached
instructions in a new session. A changed version means refetch the skill and
the references needed for your task. The beacon tracks the helper and each
reference too. API responses also advertise `X-Laso-Docs-Version`.

To update a URL-installed skill, download the helper again and rerun it with
`--skill-dir`. A registry-installed skill can use its registry's update command.
Do not reinstall during each action. Support: agents+support@laso.finance.
