
Token and Vault Exit Ladder
One decision on holding a Base token and a vault position: token-trap-detector (live bytecode, proxy slots, honeypot simulation) and vault-exit-lawyer (redeem limits, queue, admin powers, eth_call simulation) run in parallel; contract-auditor then audits the token's verified source at the proxy implementation the trap step read, and is skipped on a honeypot or unverified source. Returns the worst of the three verdicts as block | review | proceed and which leg set it. Charged once, token-trap-detector + contract-auditor + vault-exit-lawyer at 20% below their combined list price; not charged when a required step fails.
What you get
Before a treasury or bot buys a token or deposits into a vault, one call says whether it can get out, and why not.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/pipelines/token-vault-ladder. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/pipelines/token-vault-ladder \
-H 'content-type: application/json' \
-d '{"tokenAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"ethereum","vault":"0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB","exit":{"shares":"1000000000000000000000"}}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
tokenAddress | string | yes | Token contract address on Base. |
chain | string; one of "ethereum", "base", "polygon", "arbitrum", "optimism" | yes | Chain the vault lives on. |
vault | string | yes | ERC-4626 or ERC-7540 vault address. |
exit | object | yes | Exactly one of shares or assets, as base-unit integer strings. shares may be "max" (needs holder). |
holder | string | no | Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits. |
docsUrls | array<string; length 0..2000>; max 4 items | no | Public documentation pages whose redemption claims are checked against the contract. |
Example request body
{
"tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chain": "ethereum",
"vault": "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB",
"exit": {
"shares": "1000000000000000000000"
}
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
decision | string; one of "block", "review", "proceed" | no | Worst of the trap, audit and vault verdicts. |
decidedBy | array<string> | no | Legs whose verdict set the decision (empty when it is proceed). |
votes | array<object> | no | |
results | object | yes | Each executed member step's full result, keyed by step id (forEach steps: one entry per item). |
steps | object | yes | Per step: status (ok | skipped | failed), reason, attempts, ms, inputSha256, outputSha256, and the output hashes of the upstream steps its input was derived from. |
partial | boolean | yes | True when an optional step was missing or a member returned its own partial result. |
missing | array<object> | yes | |
deterministic | boolean | yes | True only when every executed member answered without a model. |
Pay and connect
Available through: x402 (USDC on Base), MCP, RapidAPI.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent