Official · SDK
Wallet DNA
Reads an address balance and recent signatures, then separates those on-chain facts from a creative persona.
Version 1
What it does
Reads an address balance and recent signatures, then separates those on-chain facts from a creative persona.
- Account
- Transactions
- Generate
Try this SDK
Enter the required inputs and run this SDK using the published version.
Examples fill the form. They are not a test result.
Remix this SDK
Open an editable version in the AI Builder and make it your own.
Developer details
Version 1
Inputs
- The Solana address to characterise. The example is the System Program, a real account.solanaAddress · required
wallet
Outputs
- reportobject
steps.explain.result
- activityobject
steps.read_activity.result
- balancesobject
steps.read_balances.result
Operations
- 01
read_balances
Account
- 02
read_activity
Transactions
- 03
explain
Generate
Content hash
c32f93883311b9b1ed8d39b7daa22966df3edb3300878cf3e995fc527aef340b
Blueprint
{
"name": "Wallet DNA",
"steps": [
{
"id": "read_balances",
"op": "solana.account",
"args": {
"address": {
"$ref": "inputs.wallet"
}
},
"config": {
"mode": "balances"
}
},
{
"id": "read_activity",
"op": "solana.transactions",
"args": {
"address": {
"$ref": "inputs.wallet"
}
},
"config": {
"mode": "recent",
"limit": 5
}
},
{
"id": "explain",
"op": "ai.generate",
"args": {
"wallet": {
"$ref": "inputs.wallet"
},
"activity": {
"$ref": "steps.read_activity.result"
},
"balances": {
"$ref": "steps.read_balances.result"
}
},
"config": {
"task": "Separate facts from interpretation. Use tokenAccountCount for the number of token accounts in the sample, and call them token accounts rather than balances. If truncated is true, say the sample is incomplete. Put what the balance and signature sample show in activity_summary and on_chain_facts. Put a readable characterisation in persona and start that field with Interpretation. Put supporting observations in observations. In limitations, state the sample size and that token amounts and transfer values are not in this sample.",
"responseSchema": {
"type": "object",
"required": [
"activity_summary",
"on_chain_facts",
"persona",
"observations",
"limitations"
],
"properties": {
"persona": {
"type": "string"
},
"limitations": {
"type": "string"
},
"observations": {
"type": "string"
},
"on_chain_facts": {
"type": "string"
},
"activity_summary": {
"type": "string"
}
}
}
}
}
],
"inputs": {
"wallet": {
"type": "solanaAddress",
"required": true
}
},
"limits": {
"timeoutMs": 60000,
"maxOutputBytes": 131072
},
"outputs": {
"report": {
"from": {
"$ref": "steps.explain.result"
},
"type": "object"
},
"activity": {
"from": {
"$ref": "steps.read_activity.result"
},
"type": "object"
},
"balances": {
"from": {
"$ref": "steps.read_balances.result"
},
"type": "object"
}
},
"description": "Reads an address balance and recent signatures, then separates those on-chain facts from a creative persona.",
"capabilities": [
"solana.account",
"solana.transactions",
"ai.generate"
],
"schemaVersion": "1.0"
}