POST /v2/check
curl https://api.presign.example/v2/check \
-H "Authorization: Bearer $PRESIGN_KEY" \
-d '{
"chain": "ethereum",
"from": "0x71c2…a9d0",
"to": "0xa0b8…eb48",
"data": "0x095ea7b3…ffff"
}'{
"verdict": "flagged",
"summary": "Unlimited USDC approval",
"flags": [
"unlimited_allowance",
"contract_age_lt_7d",
"unverified_source"
],
"fix": { "amount": "250000000" },
"ms": 1180
}The same checks, from your backend
Send a transaction, get back a verdict, the flags and a suggested fix. Built for wallets, exchanges and custody teams.
sdk
Three lines in your stack
import { Presign } from '@presign/sdk'
const presign = new Presign(process.env.PRESIGN_KEY)
const check = await presign.check(tx)
if (check.verdict === 'flagged') showFix(check.fix)from presign import Presign
presign = Presign(os.environ['PRESIGN_KEY'])
check = presign.check(tx)
if check.verdict == 'flagged': show_fix(check.fix)import "github.example/presign/presign-go"
client := presign.New(os.Getenv("PRESIGN_KEY"))
check, err := client.Check(ctx, tx)
if err == nil && check.Verdict == "flagged" { showFix(check.Fix) }endpoints
Small on purpose
| method | path | what it does |
|---|---|---|
| POST | /v2/check | Check one transaction or signature |
| POST | /v2/check/batch | Up to 100 requests in one call |
| GET | /v2/rules | List the rules and their versions |
| POST | /v2/webhooks | Get flagged requests pushed to you |
POST
Check one transaction or signature
/v2/check
POST
Up to 100 requests in one call
/v2/check/batch
GET
List the rules and their versions
/v2/rules
POST
Get flagged requests pushed to you
/v2/webhooks
limits
Rate limits
| item | value |
|---|---|
| Free key | 10 requests a second |
| Paid key | 200 requests a second |
| Batch | 100 requests per call |
| Uptime last 90 days | 99.98% |
Free key
10 requests a second
Paid key
200 requests a second
Batch
100 requests per call
Uptime last 90 days
99.98%
Read. Then sign.
Add Presign to your wallet and see every request in plain words before you confirm it.
