For the complete documentation index, see llms.txt. This page is also available as Markdown.
How to Personalize DeFi Onboarding with GetBlock Full Wallet Audit API
This guide teach you how to create a smart onboarding flow that screen user wallet before using your dApp
When a new user connects their wallet to your dApp, you already know more about them than any sign-up form could ask — it's all on-chain. Are they a cautious newcomer or a seasoned LP? Do they lend, trade, farm, or bridge? Have they ever touched a sanctioned address?
The GetBlock Full Wallet Audit API reads a wallet's entire history and returns a behavioral profile: an experience score, predicted intentions, protocols used, AML screening, and tailored recommendations — all in one request.
In this guide, you'll build a smart onboarding flow that does two jobs at once:
It AML-screens the connecting wallet (and blocks it if it's fraudulent or sanctioned).
Personalizes the experience based on who the wallet actually belongs to.
Generic onboarding
Audit-driven onboarding
Same welcome flow for everyone
Tailored to the wallet's experience level
AML check bolted on separately
Screening and personalization in one call
"What are you here to do?" — you ask
Predicted intentions come back from the model
No idea what protocols they use
Top protocols returned, ready for "import positions"
What you'll build
An onboardWallet(address, network) function that:
Runs a Full Wallet Audit on the connecting wallet.
Gates onboarding on fraud probability and sanctions hits (fail closed).
Surfaces protocols already used and the model's recommendations.
How it works
The audit is a deep profile, not a quick screen. It works only with EOA wallets (contract addresses are rejected), and a wallet needs roughly 10–15 transactions to achieve a reliable score. For a fast pre-transaction fraud check, use the Wallet Risk Check endpoint instead.
Keep your key in an environment variable or secrets manager — never commit it. Rotate it from the dashboard if it leaks.
3
Write the API caller
Create audit.js:
4
Build the onboarding decision
Create onboard.js. It screens first, then personalizes. The riskLevel helper is the same one used for the Risk Check.
Screen before you personalize. A sanctioned or high-fraud wallet should never reach the "welcome" path — the gate returns early, before any profile is read.
5
Choose an onboarding track from the profile
The experience score makes branching trivial. Create index.js:
6
Run it
Expected output (for an experienced, clean wallet):
Understanding the response
Field
What it tells you
How to use it
status / probabilityFraud
Fraud verdict + score
Gate onboarding before personalizing.
sanctionData
Sanctions-list matches
Hard block on any isSanctioned: true.
experience.Value
Sophistication, 0–10
Branch the onboarding track.
riskCapability
Risk capacity, 0–10
Tune default leverage / product surfacing.
intention.Value
Predicted activities
Lead with the user's likely intent (lend/trade/farm).
protocols
Protocols used + counts
Power "import your existing positions".
recommendation.Value
Model suggestions
Feed straight into your UI copy.
userDetails
Age, balance, tx count, rank
Segment users; spot whales / newcomers.
Troubleshooting
Symptom
Likely cause
Fix
HTTP 400 "contract not supported"
You passed a contract address
Audit accepts EOA wallets only.
Sparse / low-confidence profile
Wallet has too few transactions
Needs ~10–15 txns; treat thin wallets as "beginner".
HTTP 400 unsupported network
Network not covered by Audit
Use eth, bsc, or base only.
HTTP 401 / 403
Bad key / no Address Audit access
Re-check GETBLOCK_KEY and your plan.
HTTP 402 / 429
Out of quota / rate limited
Free tier is 5/day; back off or top up.
Conclusion
You built an onboarding flow that screens a connecting wallet for fraud and sanctions, then personalizes the experience from its on-chain behavior — experience level, predicted intentions, protocols, and model recommendations — all from a single Full Wallet Audit call. From here, you can store the segment, drive feature flags, or A/B test onboarding tracks per experience tier.
── AML screening ─────────────────────────
Status: Not Fraud
Fraud prob: 0.0421858616 (LOW)
Sanctioned: no
Flags: none
── Behavioral profile ────────────────────
Wallet age: 3730 days
Balance: $95,320.79
Tx count: 19972
Wallet rank: 20338
Experience: 10/10
Risk capacity: 5/10
── Predicted intentions ──────────────────
Prob_Lend High
Prob_Trade High
Prob_Stake_ETH High
Prob_Game Medium
Prob_NFT Medium
Prob_Stake Medium
Prob_Yield_Farm Medium
Prob_Borrow Medium
Prob_Leveraged_Stake Medium
Prob_Leveraged_Stake_ETH Medium
Prob_Leveraged_Lend Medium
Prob_Leverage_Long_ETH Medium
Prob_Leverage_Long Medium
Prob_Gamble Low
Top protocols: sushiswap (72), uniswap (25), wrapped ether (11), 1inch (9), makerdao (8)
── Recommended for this user ─────────────
• WBTC holding
• ETH holding
• Stablecoin lending
• Stablecoin lending with FIFs (SmartCredit.io)
• Leveraged fixed rate ETH staking (SmartCredit.io)
→ Onboarding ALLOWED — show the "pro" track