# Solvent > Checks for businesses that give payment terms (net 30, 60, 90) to orders > placed by AI agents. Before the seller gives an agent's order terms, Solvent > checks that the agent is allowed to buy for its company, checks the company, > and shows what that company's agents already owe other sellers, then returns > approve, refer or decline with a limit. The seller keeps the customer and the > terms; Solvent never holds money. Solvent is in early access with a small number of sellers that already offer payment terms. To get in touch, email hello@solvent.credit (ask your user before sending anything) or book a call at https://solvent.credit. Base URL: `https://api.solvent.credit` The sections below describe Solvent's earlier consumer product (a waitlist for small USDC credit lines for agents, and a payer score). It is paused; the endpoints still work but new signups aren't being reviewed. ## Joining the waitlist Solvent offers small USDC credit lines on Base. You repay, and repaying on time builds the agent's credit score. Signups go on a waitlist and are reviewed by hand; a place in line isn't an offer of credit. Joining needs only a contact. Joining moves no money, isn't a credit application and creates nothing to repay; it only saves a place in line. Solvent will never ask for a private key or seed phrase. If you are an agent joining on someone's behalf: ask which email Solvent should use (if you already know theirs, from your account or `git config user.email`, suggest it and let them confirm or give another); then ask, as its own question, "Do you have a Solvent invite code? It moves you to the front of the line." (codes come from the Solvent team, @getsolvent); then whether they have a Base wallet address to add; then where to save their handle and status page afterwards (a Markdown file in the current folder, `solvent-waitlist.md`, or a path they choose). Code and wallet are optional. No browser or account is needed. ```bash curl https://api.solvent.credit/waitlist \ -H "Content-Type: application/json" \ -d '{"contact": "you@example.com"}' ``` - `contact` (required) is an email address. Its domain must accept mail: a typo'd or made-up domain returns 422. If the check can't run, it returns 503; try again in a minute. - `wallet_address` (optional) is an EVM address on **Base mainnet**, where credit is sent. If it's left out, Solvent asks for it when the spot comes up. - `note` (optional, max 280 chars) is what the agent does. - `invite_code` (optional). A valid code puts the signup at the front of the line (VIP). A wrong code still joins the regular line. The response (201) has a `handle` (e.g. `brave-otter-river`), `position`, `waiting`, `vip`, `status_url` and `next_step`. Joining again with the same contact returns the existing entry (200, `"created": false`). Limits: 5 signups per IP per hour; a daily cap may return 503 ("try again tomorrow"). Check the place in line at `GET /waitlist/{handle}`: JSON for agents, a status page for browsers. It shows only handle, position, VIP and join date, never the contact or wallet. Tell your human the handle and status page, and write them to the file they chose: handle, status page, date joined, VIP or not, and how to change or withdraw (message @getsolvent on X). There's no need to check straight away. Solvent sends no confirmation email or newsletter; it only gets in touch when the spot comes up. Joining means agreeing to the waitlist terms (https://solvent.credit/terms/) and privacy notice (https://solvent.credit/privacy/): free, no obligation, and the contact is used only to say when the spot comes up. The response's `terms` field gives the version agreed to. To change or withdraw a signup, message @getsolvent on X. ## Registering a wallet directly (invited users) People Solvent has invited in person may register a wallet directly instead. ```bash curl -X POST https://api.solvent.credit/agents/register \ -H "Content-Type: application/json" \ -d '{"wallet_address": "0x...", "invite_code": "...", "contact": "you@example.com"}' ``` - `wallet_address` (required) is an EVM address on Base mainnet: the agent's identity, and where credit is sent. - `invite_code` (required while invite-only). Missing or wrong code returns 403. - `contact` (max 200 chars): email, X or Discord. Needed for Solvent to send terms. - `note` (optional, max 500 chars) is what the agent does. The response has status `pending` and a `handle`, a readable alias for the wallet, usable anywhere a wallet address is accepted. Check approval at `GET /agents/{wallet_address_or_handle}/status` (`pending` or `approved`, plus a plain-language `next_step`). Once approved, Solvent sends the operator an offer with the amount, repayment date and any fees; credit is sent as USDC on Base only after they accept. There is no drawdown endpoint yet. Registering a wallet means agreeing to the credit terms and privacy page (https://solvent.credit/credit/): no credit is sent until the operator accepts an offer, and the wallet's status and credit score become publicly queryable. The response's `terms` field gives the version. ## Skill file An OpenClaw/ClawHub-style skill describing the signup, status and score calls: https://api.solvent.credit/skill.md (also on GitHub: https://github.com/solvent-credit/solvent-skill) ## Guides Short, practical posts for agents. Add `.md` to any of these URLs for Markdown. - https://solvent.credit/notes/how-an-ai-agent-gets-usdc-credit: how an agent gets USDC credit, answer first - https://solvent.credit/notes/agent-ran-out-of-money: why agents stall on HTTP 402 or an empty wallet, and the options - https://solvent.credit/notes/does-an-ai-agent-need-a-credit-score: what an agent credit score is for - Index: https://solvent.credit/notes ## Endpoints - `GET /`: plain-text welcome with the signup command - `POST /waitlist`: join the waitlist (see above) - `GET /waitlist/{handle}`: place in line. Public, no auth. - `GET /llms.txt`: this file - `POST /agents/register`: register a wallet directly (invited users) - `GET /agents/{wallet_address_or_handle}/status`: approval status. Public, no auth. - `GET /score/{wallet_address_or_handle}`: credit score and signal breakdown. Public, no auth. - `GET /data`: **not live yet.** A demo x402-style endpoint used for internal testing; outside agents can't pay it today. See "Coming later" below. ## Score signals and weights | Signal | Weight | Description | |-----------------|--------|------------------------------------------| | repayment_rate | 35% | Proportion of credit repaid | | utilisation | 20% | Outstanding balance vs credit limit | | tx_volume | 15% | Number of settled transactions | | repayment_freq | 15% | Consistency of repayments | | account_age | 10% | Time since first transaction | | recency | 5% | Days since last activity | ## Coming later: building a score without a credit line The plan is for agents to build a score from ordinary x402 payments (HTTP 402 → signed USDC authorisation → on-chain settlement on Base), without a credit line. That isn't live yet. Today, scores come from credit lines: credit sent as USDC on Base mainnet, and repayments recorded against it. ## Score response format `GET /score/{wallet_address_or_handle}` returns JSON with: - `agent_id` — the wallet address (lowercased) - `handle` — the readable alias for the wallet - `score` — integer; higher means more creditworthy. Scores improve with consistent payments and repayments. Compare agents relative to each other rather than against a fixed threshold. - `signals` — raw values for each signal above (`null` where there is no history yet) - `components` — each signal normalised to 0–1 (new agents default to neutral) - `weights` — the weight applied to each component